<[?7[?2



















                        
                                

                                     

                                  

























                                      1991









































































                                                                  3
                                   .


     .

          .
     1     .
     2         .      
          (  
,   ).
     3      .
    4       .
    5  6            
.     4 :
      1)  ,     ();
      2)  ;
      3)  ;
      4) ,   .
     7       .
       ,    .









































      4                             
                             1.  .


      1.  .

        -  -
 ,    ANSI/MDC XII.1 1984 ,   -
 .
          , -
    ,    
..
     Z   ,       ,
    .
       , ..     -
   .          ,
      .    
,      .    ,  ,    
      ( ,     Z),
     .
             -
    - .    
 :
      1)      :     
          ;
      2)     ;
      3)     ,  ;
      4)   ;
      5)     ;
      6)      ;
      7)       ,  -
              .
               
[1].


     1.1.   .

    ,          
(  ).
       ,   -
   .     -
 ,     (_). :
   _
            -
 ([...]). ,      (   
),    ,     (*).  -
             
(!). :
    ::= _ [] _ !
                    _
   _ ::=  <,>*
    V        -
,        -
,    . :
   _ V _
,            
 .       3.4.
      [,],<,>,*,!,V (     )
   .      .


                                                                  5
                             1.  .


          1.
    ()         
.
            '-
   .


     1.2.   .

            
-7.    ,   .1
              -
 2.
   _ ::= _ ! _
   _ ::=  !  ! _
    ::= A ! B ! C ! ... ! Z !  !  !  ! ... !  ! 
    ::= 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9
   _ ::=  ! _ ! " !
                      ! $ ! % ! \ ! ] ! ^ ! _ !
                    & ! ' ! ( ! ) ! * ! + ! - ! , ! . !
                    / ! : ! ; ! < ! = ! > ! ? ! @ ! [

                 .           1.
-----------------------------------------------------------
!     !                                      !
!-----------+----------------------------------------------
!  (/J) !    .                           !
!  (/M) !    .                          !
!  (/I) !    .                 !
!         !      (          !
!           !     ).      !
! /U      !     (      !
!           !    ).                     !
! /C      !     .                   !
! /S      !            !
!           !  /Q,  .            !
! /Q      !    ,  /S.!
! /R      !     (, )            !
!           !    (          !
!           !   ).                !
! /O      !      .          !
! /N      !      .           !
-----------------------------------------------------------

          .
     /O, /N      ,   -
           ^MUX.

   _ ::= !
   _ ::=  !  !  !  ! 2 ! /C !
          /S ! /Q ! /R ! /U ! /O ! /N
    /C, /S  ..     -
  <>    .
       -   ,     
  .       .



      6                             
                             1.  .


    -   ,   .   -
               .
  ',    ,  
.
            . -
      4.1.


     1.3. - .

             
 .    ,    
   .
    -      5.3.    ,  
          [2].


     1.4.  .

           BREAK, ZBREAK 
ZGO ( 5.5)    $ZERROR, $ZTRAP.
         :
      1)       -  (,  
             );
      2)      :
            <> _ _;
      3)        .
             .  
             
  DO  GOTO.
        ,    -
 $ZERROR  $ZTRAP ( 2.6).


























                                                                  7
                             2.  .


      2.  .



     2.1.  a.

     ,   ,      
 -7.       ,   -
 ,       .
     -      (. -
 2).         255 .

          .
        1.        .    
      ,        -
         -   ( 
           ).
        2.         
       .



     2.1.1.   .

    ::= [+]__ ! - __
   __ ::=  ! 
    ::=  [.] ! .
    ::=  <>*
    ::=  
    ::= E[+] ! E-
         -       .
            255
.      30 .      -26
 +26.       :
      1)  ,     ;
      2)   ,    .
             
  ,     ,    .  2.1.1.
   ,     ,  
      .      
      ( 0),   -
  0.

          .
                        
      1981                        1981
       1981                         0
      -0.23+4                    -0.23+4

          :
        1.   "+"   ,      ,  
         .    -
           . ,    036  
     +36 ,   036  +36 .
        2.          
         . :


      8                             
                             2.  .


      > S  A=10.12,=1E-2
      > W  A+B
      1010.01
      > W  -0.1
      -.1
      >


     2.1.2.   .

      ,     ""    1,  
"" - 0.        -
,       .
           :    
 - ,   -  (0),     -
 (1).

          .
                    
       835                        1()
       ABC                        0()
       73.4<105.338               1()
       12=0.12                    0()


     2.2. .

    -  ,      .  
       .    
 ,  ()  .

          .
      3.14159                    ;
      "MY NAME is"                
                                ;
      0                          .


     2.2.1.  .

        ,      
         (. . 2.1.1).

          .
      17.17
      -.56
      0.3-12


     2.2.2.  .

        .
    ::= " _ "
   _ ::= <_>*
        .     
255 .      ("),    .


                                                                  9
                             2.  .


          .
      "Y NAME is"
      " "" - "
      "$#@'+7"
      " **!!"


     2.2.3.  .

           -  1  ()    0
().


     2.3. .

       ,    
.
    ::=  <__>* !
                    % <__>*
   ,     ,       63
,      8 .       8
.

          .
                  (
     4.2).

          .
      : ABCI %12C
      :
             ABC*I -   ;
             2ID -    .

          .
            
           (%).


     2.4. .

    -    .       
         .  
   -  (  ).
    ::= _ !
                    _
   _ ::= _ !
                    _
   _ ::= _ !
                    _ !
                    _ V _
   _ ::= 
   _ ::= (_)
   _ ::= ^_ !
                    ^__ !
                    _ V _



     10                             
                             2.  .


   __::=
                    _ !
                    ^(_)
   _ ::=  <,>*
    ::= 
      : ,   .  
    ,    ,
   ,   ,  -
 ,  .         
  .
           .  
          SET   -
   READ    KILL.


     2.4.1.  .

     -  ,      -
    .           HALT  
  .
         .
            .
    ,      -
  ,    () ,   -
  -    ..
        ( ).

          .
       ,    %,   -
       ,      -
     .


     2.4.2.  .

     -  ,    ,   
        .    
     ()    ,    
    .   
( )      .
         (^).    
    .      
    ,         
         
 .
    ,      %,  -
.           
     .
         -
    ,       
     .     :
   ^[[,SYS]]  (_)
  -  ,      ;
SYS -       (   ),  -
  .



                                                                 11
                             2.  .


      ,   ,        <NOUCI>.
       ,   <NOSYS>.


     2.5.   ().

         .   -
         .
        .        
  .     120    
   (     ).  ,    
  ,    .
          (). -
        .        
         (  
).
          .   
-  ,      ,   -
     .
        ,    ' -
        ,  
        .
   ,      ,      
  .   (    )  
 ,         .

          .
      1.     :
           BACUS(0.2)
           BACUS("TWO")
           BACUS(10)

      2.       :
     
                                       
     
          ^HOT
          ^HOT(1)                            ""
          ^HOT(2)                            ""
          ^HOT(1,1)                          ""
          ^HOT(1,2,1)                        "
          ^HOT(1,2,2)                        ""
          ^HOT(1,2,3)                        ""
          ^HOT(2,1,"")            1977.1
          ^HOT(2,1,"")                   1978.12

        . 1.
         ,    
 ,  .  ^HOT(1,2)  ^HOT(2,1).     
.     ,       -
 : ^HOT(1)  ^HOT(2).         -
  .






     12                             
                             2.  .


                                   * ^HOT
    - - - - - - - - - - - - - - -.- - -.- - - - - - - - - - -
           ""  .        .   ""
                    * ^HOT(1)    * ^HOT(2)
    - - - - - - - - - - - - ..- - - - - - - -.- - - - - - - -
             ""  .  .               .
        ^OT(1,1) *    * ^HOT(1,2)      * ^HOT(2,1)
                  . ..               . .
    - - - - - - - - - - - . -.-.- - - - - - - -.- -.- - - - -
           .   .  .               .      .
           .     .   .       1977.1  *         .
                   .      .    .  ^HOT(2,1,"")  .
                 .       .     .                            *
     "" *   "" *     * ""           1978.12
      ^HOT(1,2,1)  ^HOT(1,2,2) ^HOT(1,2,3)   ^HOT(2,1,"")
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                        . 1
     2.5.1.  .

            
  .
           (^)  , 
         -
 .
              
     .
   ,      ^ABC(2),    ^ABC(1) -
   :
   SET A=^(1)
     ^ABC(1,1,2),  :
   SET A=^(1,1,2)
     ,      -
 ,     .
        .

          .
      2101<>SET ^C(I,J,K)=^(K)+1  - 
      2101<>SET ^(K)=^C(I,J,K)+1  - 


     2.6.  .

     -  ,        
 .       .
     ( $ZTRAP  $ZBREAK)     
  SET, READ, KILL.          
 $        ( ,    
$Z). , $TEST  $T .
$HOROLOG -       :  DD,SS  -    DD  -  
           ,   31  1840 ; SS -   ,
            .
$I     -     -.
$JOB    -   ,         
          ,    .       
          ,    .        
          .


                                                                 13
                             2.  .


$STORAGE -           -
          .
$TEST   -   ,      -
            IF     READ, OPEN, LOCK   -
           . $TEST          JOB  
          ,     .
                    :
               >IF X>0 SET X=-X ;  X ,    
               SET,  $TEST   1.
$X      -       ,    
              . $X      -
           -   .      $X  
           ,    <>.   
           0  255.
$Y      -         -.  -
            0      1   -
           .     0  255.
$ZA     -    -.
                   ,  $ZA  
           ,      .
                   -
            (), $ZA      ,  
           .
                , $ZA     
              (DDB).
                 $ZA .  [2].
$ZB     -     ,   $ZB    
          ,   .
                 $ZB    .
                 $ZB .  [2].
               JOB $ZB           
           .
               $ZB      .
$ZBREAK -     , , .    -
                 ,    
          .      :  $ZBREAK(N)
          -  N -    0  9.
                          
             ,      
               (.    --
          ).      :
             SET $ZBREAK(N)="_[+]
                         ^ :___"
                  ,
             .
                      
          $ZBREAK  ,        $ZBREAK(N),
           N         
          .  N  ,      -
             $ZBREAK(9),      $ZBREAK(9)
          .
                  $ZBREAK  , 
             .       
           ,    ,   -
             .
                     ,  -

              ,   :
     14                             
                             2.  .


             $ZBREAK(N)="+_
                    ^_:___>"
          : SET $ZB="TTT+5^PGM:3>ZW  ZG" -      -
          ,          ,  
            .
               $ZBREAK(0)       
          SET  ,   ,        
               .
                ,    ,    
              $ZBREAK,  .    
                  ZBREAK ON        
           ZBREAK OFF.
                     ,    
              ,       ZGO,   ZBREAK OVER,
          ZBREAK OUT, ZBREAK IN.          
           ZBREAK (.5.5.3)         (.
          [2]).
                    
            : ZWRITE $ZBREAK
                     -
           : WRITE $ZBREAK(N), -  N -      
          .
                         :
          KILL $ZBREAK.
                            :
          S $ZBREAK(N)="".
$ZERROR -               :  
          , ,  ,  ,   .
              ,    $ZERROR     -
          ,      / ,  
             $ZTRAP (      
           $ZTRAP        ).  
          ,     , .  [2].
$ZM     -     .    ,    $ZM
          .        .  
          [2].
$ZORDER -    $ZORDER       -
             ,      
               (-
            ).
                    .
                   ^A ^A(1,2)=20, ^A(1,3)=30   
                  SET ^A(1,2)=22 WRITE $ZO - 
                30.
$ZPROVIDER -      /  -
              .
$ZREFERENCE -    (    ),    -
                 .    
              ,    
          ',  ,    ,    -
           $ZR         , -
           .
$ZTRAP  -      / ,     -
                 .
               $ZTRAP    ,  -
              DO  XECUTE.     

              $ZTRAP.    
                                                                 15
                             2.  .


             ,      (      ,
             DO  XECUTE),    -
            :
                1)      $ZTRAP    
                     ,       /
                   ,         
                    $ZTRAP,   $ZTRAP    -
                    ;
                2)          -
                     $ZTRAP,    ,  -
                    ,    
                   $ZTRAP          ,
                              
                   $ZTRAP,            
                   /  ;
                3)     $ZTRAP   
                         ,      
                     ,   .
                    
          .  [2].
                    .
               S $Z="ERR+2^CHECK" -      -
                        ERR  
                CHECK.
$ZUSR  -    -   .    
            .
$ZVERSION -      .
$ZX, $ZY -      $X    $Y      
               .





























     16                             
                               3. .


      3. .

         .  -
  ,   ,     -
.         '   
 .        ,  -
    (    ),     -
   ,   .
             -
          -
.    ;    ,  -
  .


     3.1.  .

      , ,     -
.
      ,  ()  .
       ,   .      
,   .
   _ ::=  !  !
                     !  !
                    () ! 
             
     .
             -
 .        :
    ::= _
                    (__)
   __ ::= _
                              <,_>*
   _ ::= 
          6.


     3.2.   .

    ::= [_] _
                    <_ _>*
         :
      1)    ;
      2)  A  B - ,    :
            - A   B;
            -   B;
      3)     .


     3.3. .

              ,  
  ,    .  
  .2.





                                                                 17
                               3. .


                            2
----------------------------------------------------------
!        !          !     !   !
!----------------+-------------+------------+------------!
! + ()       !  !    !    !
! - ()      !  !    !    !
! ' ()         !  !  !  !
! + ()   !  !    !    !
! - ()  !  !    !    !
! * ()  !  !    !    !
! / ()    !  !    !    !
! # ()     !  !    !    !
! \ (     !  !    !    !
!    )     !             !            !            !
! < ( ) !  !    !  !
! > ( ) !  !    !  !
! = ()      !  !   !  !
! [ ()   !  !   !  !
! ] ()    !  !   !  !
! ? (  !  !   !  !
!    )    !             !            !            !
! & ()          !  !  !  !
! ! ()        !  !  !  !
!_ ()!  !   !   !
----------------------------------------------------------
          .
        (')      , -
       ,    .

          .
                                   
     A'<B                    '(A<B)
     A'&B                         '(A&B)

          .
        1.    ,  .
        2.     ,  -
        .


     3.3.1.  .

        (+),  (-),  (+),  -
 (-),  (*),  (/),   (\)        
( ).     - ,  .
         ,      
  .

          .
                               
                  -+70                   -70
                  --70                    70

        ,   , 
 .



     18                             
                               3. .


           .  
           
10  30.           ,
    .
             
   .      (-
,  A  B ):
 A#B =    A  B;
 -A#-B = -(A#B);
 -A#B = 0,  A#B=0,  B-(A#B);
 A#-B = -(-A#B);
 B=0,  ;  A=0,   0.

          .
                            
                +"25 ."             25
                -""                 0
                -15.6                  -15.6
                12+3.68                15.68
                4.3-9.7                -5.4
                -25*4                  -100
                7.638/3.8              2.01
                27/13                  2.07692307692
                12457\7                1779
                46#-10                 -4
                11.8#3.1               2.5


     3.3.2.  .

          (    -
 "").   -  ,   -
     ,   .

          .
                               
             "1981"_"-MAY"             "1981-MAY"
             " "_(1>2)         " 0"


     3.3.3.  .

       3   - "" (&), ""  (!)    ""
('). ""     , "" - 
  , "" -  .
     "" (&)    (A   B),    
      .  
 - "",   A,   B "";     -
  - "".
     "" (!)    (A  B),   
       . -
  - "",   A,   B  "";      
  - "".
     "" (')    .  
  ,   - 0 ().     ,  
 - 1 ().


                                                                 19
                               3. .



          .
                        
             '1                   0()
             '478.358             0()
             '0                   1()
             1&0                  0()
             1&12                 1()
             12!0                 1()
             0!"X01"              0()
          .
      "" (')       - "
     " ('&)  " " ('!).


     3.3.4.  .

            -
 .
     (>)    (<)        -
.   (=, [, ], ?)       -
.

          .
                             
                12<"41"              0()
                12>-18.1               1()
                "08"=8                 0()
                +"08"=8                1()

    "" ([) ,  ,      -
,   ,   .    ,
 1 (),     0 ().
    ""  (])    ,      ,
  ,   ,    -
         .
   ""   ,  1 (),  -
   0 ().
      (?)        -      
 -  .
          /  -
,               "."
().
    ::= _ <_>* !
          _ V 
   _ ::=  <>* _
                    <_>*
   _ ::=  ! _
    ::= . ! 


                
  .
            ,   -
    .



     20                             
                               3. .


                           3
---------------------------------------------------------
!          !               !
!---------------------------+---------------------------!
!           N               !                      !
!           U               !             !
!           L               !               !
!           A               !                      !
!           P               !           !
!           C               !          !
!           E               !                !
---------------------------------------------------------
   ,             ,
     .      
 (.).     ,   .
     (.)             
     ,       
     .
    ,           -
   ,    ,   ,
    .     
,             ,
  .  :
   _._ _
          .

          .
       ,      Y
      ,  :
           1)    : WRITE Y?3.N
           2)     : WRITE Y?.5N
           3) ,      2    7:  WRITE
              Y?2.7N

          .
                                 
          ""]""             1()
          "JONES"]"JONES"               0()
          "500"[50                      1()
          "abcdef"["abd"                0()
          3.14?1N1P2N                   1()
          "**"?2P                       1()
          "**"?1P                       0()
          "4"?1N.UL                  1()
          "D-34"?3A1P1"34"            1()


     3.4.  .

   _ ::= @ _
                
    .      
   :      -
     .
         :



                                                                 21
                               3. .


      1)  .     ,    
              .
                   .
              S A="X1",@A=4 -  X1    4.
              S B="LABL" G @B+2 -      
                LABL.
              S ="ABC" D ^@X -    ABC.
      2)  .
                   .
              S X="1N.U" I A?@X -  A     
                ,     .
      3)  .        .  
               .
                   .
              S X="A=0" S @X -  A    0.
              S Y="ABC" K @("^"_Y) -     ^ABC.


     3.5.   .

           -
             
     .    
  .
        :
      :: =
                    @   @ ( )
       @        
,    .

          .
     SET X="A(1)"
     SET @X@(2,3)=""
        A(1,2,3)     "".

      , , -,   
  , , -,    ,  
              
 .

          .
     SET Y="A"
     SET @Y@(1,2)=" "
     WRITE A(1,2)
     :  .













     22                             
                               4. .


      4. .



     4.1.  .

             - -
    .  ,    -
       (),      -
.          (>).
            -
            
 .
           -    -
 ,       -      .
     255 .
   _ ::=  < >* <>
       .       ,
     ,      -
  <>.    ,     -
   .      
 .
         ,       
   .
            ""  .
    .        
 PRINT, ZPRINT  ZREMOVE.    PRINT, ZPRINT  -
    .    ZREMOVE -
      .
          <>  ,
   <>.    .  .4.2.
            
 DO  GOTO   ,     
 ,      ( ).


     4.2.  .

               -
 .      :
    ::= <_>*
   _ ::= []   < >*
                    [  ;]  !
                    []  [ ;] 
    ::=  !  !
    ::= <_>*
    -   .      
  <>,   ,    <>,   
 ,         ,    
   ,           ;
     <>.      -
,         ,    -
.
    -   .       ,  
 0  9   %.  ,    . DO,  GOTO,  $TEXT
        .     

  8 .       
                                                                 23
                               4. .


"0"   , ..   01  1    .
         -7.    
,     ,       
  <>.          -
 .        .
      ,          
  .          
  (GOTO, DO  ..).


     4.3.   .;

        .  -
   DO        
 ,       ,    DO  
    .      -
  .
      N         (.),
 N-1 .

          .
         - :
          TEST W !," A" F I=1:1:2 DO
               .W !," B" F I=1:1:2 DO
               ..W !," C"
               W !,"  A"
      :
      A
      B
      C
      C
      B
      C
      C
       A
       -      
 FOR, IF, ELSE,    ,      
.         -
  .


     4.3.1.    .

        (  )    -
.          .
, ,  ,     4.3,  
         , 
    :
   ..W !," C"
    ,            
<>.       ,    -
 <>   ,  .  ,    <>
  ,       . <>  
,       .




     24                             
                               4. .


     4.3.2.     .

       DO  ,   
 (     ).    ,  
  ,   :
   []<>[] < >*D 
          < >*[;]
      ,     -
        .
       ()   :
   []<>.<.>*< >*DO 
                    < >*
     ,   ,   DO  ,  -
        .


     4.3.3.     .

      N         N
 .     N     .

          .
   METKA  1
         . 2
         . 3
         .. 4
         .. 5
         . 6
         .. 7
         .. 8
          9

    ,   4, 5, 7  8      
  ,            .
    4  5    , 
   DO  ,    3,   7  
8   ,     DO  , -
   6.
        ,     
      .   ,  -
  QUIT         .    
     ,    ,  
 ,   DO  .   DO   -
     ,       
       .
          ,     
 DO  ,   .
         ,   -
  ,   . ,       -
  (..   ,         )
,            DO
 .






                                                                 25
                               4. .


          .
   METKA  1
          2
         .. 3
         .. 4
          5
         3  4 .

    GOTO      ,   
          ,    
  ,  1.          
        .       
 DO     :
      1)   ;
      2)  '    .











































     26                             
                             5.  .


      5.  .

          2 :
      1)   ANSI/MDC X11.1-1984;
      2)   .
      ANSI   MUMPS,    -
   A  Y      .  -
 ANSI   MUMPS,       
    .        
  Z.
          :
    ::= _ []
                     _
   _ ::=  <,>* ! 
    ::= _ !
          _ V _
       ,         
.    , , ELSE, ZLOAD.   
     ( ,   Z).
           ,   HANG    HALT,
         .
     ',    . -
 , , QUIT, PRINT, KILL       .    
         .   
   ,  <>     .
                
        .  ,
   I A>0,B<0,C=D W A,B,C
  
   I A>0 I B<0 I C=D W A W B W C
     ,  FOR,      
(. . 3.4).           
,     ,     
   .  ,      
 .
         :
    ::= : 
     ,      -
.   ,    .    , -
  ,       .
    ,   FOR, IF  ELSE (     
)           ,    
   ,       $,
  $.
   ,     FOR, IF, ELSE  ,  -
       .

          .
     SET A="^B(1)",A1="P1=3.14159" SET @A=4,@A1 -   -
       ^B(1)  4   P1  3.14159.








                                                                 27
                             5.  .


       36 :
 ::= _BREAK ! _CLOSE ! _DO !
        _ELSE ! _FOR ! _GOTO !
        _HALT ! _HANG ! _IF !
        _JOB ! _KILL ! _LOCK !
        _NEW ! _OPEN ! _PRINT !
        _QUIT ! _READ ! _SET !
        _USE ! _VIEW ! _WRITE !
        _XECUTE ! _ZALLOCATE ! _ZBREAK !
        _ZDEALLOCATE ! _ZGO ! _ZINSERT !
        _ZLOAD ! _ZMARKER ! _ZPRINT !
        _ZQUIT ! _ZREMOVE ! _ZSAVE !
        _ZTRAP ! _ZUSE ! _ZWRITE
      6  .


     5.1.  .



     5.1.1.  KILL

   _KILL ::= K[ILL] [] 
          __KILL ! K[ILL] [] []
   __KILL ::= _KILL <,_KILL>*
   _KILL ::= _ !
               (__) !
               _ V __KILL
   __ ::= _
                    <, >*
    KILL  ()    .
       ,    .
    KILL,    ,   -
 .
            -
,  .           
 .
       M         (..
$D(M)   0).      M,      
,   .  M     ,  
M       SET  READ.
         .
   ,        N -
     .
         N(V1,V2,...,V),  -
 N       M   .
     ,    ,   -
    ,      .  
      ,   
,       .








     28                             
                             5.  .


          .
                         
     K ABC(3)        -   ABC  3- ;
     K               -    ;
     K (X,Y,Z)       -   
                       ,  X, Y  Z;
     K ^ABC          -  .  . 2;
     K ^ABC(1,2)     -  .  . 3;
     K ^ABC(1)       -  .  . 4.


                                 
         ---------------------------      
         I          I      
         I    "ABC"       I      
         ---------------------------        
                      .                   
                      .
                      * (1)
                    .   .
                 .         .
              * (1,1)        * (1,2)
            .   .           .   .
          .       .       .       .
(1,1,1) *   (1,1,2) *   * (1,2,1)   * (1,2,2)

                     . 2



                             
                ---------------------------
                       I          I
                              I    "ABC"       I
                              ---------------------------
                                          .
                                          * (1)
                                       .
                                    .
                                 * (1,1)
                              .     .
                           .           .
                        * (1,1,1)         * (1,1,2)

                     . 3













                                                                 29
                             5.  .


                             
      --------------------------  ----------------------
      I          I I     I
      I   "ABC"        I I   "ABC"   I
      --------------------------  ----------------------
                .
                * (1)
              .
            .
          * (1,1)
       .    .
    .          .
 * (1,1,1)        * (1,1,2)

                     . 4


     5.1.2.  SET

   _SET ::= S[ET] [] 
                    __SET
   __SET ::= _SET <,_SET>*
   _SET ::=  =  !
          (_) = !
          (_) = !
          _ V __SET
   _ ::=  <, >*
   _ ::=  $PIECE (. . 6.9)
    SET          
,   .    , -
,   .      (=), 
   ,  (=),     -
,    .      
  .
          ,    
,     .
         SET   
.
    SET  ,    "  = ",
 ,  ,      
   ,     .

          .
       BBB   :
     "::123:456:789:",
      
     S $P(BBB,":",3,5)="::"
      ,        
      BBB  ,    , ..   -
       W BBB  :
     :::::

       $PIECE   ,   SET -
    ,         .
  ,     ,      
 ,     .


     30                             
                             5.  .


     ,  ,      
,    ,  ,   -
   ,     -
      ,    
 ,       ,    -
 " ",            ,
   "".
   , ,    M   :
   ":::"
 
   S $P(M,":",8)=""
  M  :
   ":::::::"
    ,  ,  ,     
  ,  ,   "",
     ,   -
   " "  .
   , ,   TTT  (.. $DATA(TTT)=0),  -
:
   S $P(TTT,":",7)="123"
  TTT  :
   ::::::123

          .
          $PIECE,    -
            $ZTRAP  (.  .  2.6).  
          $ZB.

          .
                             
      SET A=2,B=A*3     A   2, B -  6;
      S (A,B)=6          A  B 
                         6;
      S:X=0 Y="A=1",@Y    X - ,  Y
                           "A=1", 
                         A   1.


     5.1.3.  NEW

   _NEW ::= N[EW] [] 
                    __NEW !
                    N[EW] [] []
   __NEW ::= _NEW <,_NEW>*
   _NEW ::= _ !
                    (__) !
          _ V __NEW
   __ ::= _
                    <,_>*
   K NEW      .  -
          .
   QUIT (       FOR)  -
        ,   
.
    NEW       ,    
-          -

     ,    -
                                                                 31
                             5.  .


.
   NEW            -
.
     NEW      . NEW   -
            
,    .      -
   ,          -
   . :
   NEW X(1,2),
 X(1,2) -     X(1,2); X(1,2,1); X(1,2,3); X(2,2)  
 X(1,2); X(1,2,1); X(1,2,3)
        ,         
 ,     . ,  
   : A=1, B=2, C=4, X=6,    
NEW(A,B)    A=1  A=2, C  X    .
    ,            
 NEW    KILL, ..      
  QUIT.            
,      NEW, .    
 </Y>     NEW   .


     5.2.   .



     5.2.1.  DO

   _DO ::= D[O][] __DO
   __DO ::= _DO <,_DO> *
   _DO ::= _ [] !
          _ V __DO
   _ ::= _ [^_] !
                    ^ 
   _ ::=  [+]
    ::=  ! _ V 
   _ ::= !
                    _ V _
    ::= 
    DO    .
      DO    ,        
   ,      -
.
     -  ,      -
 .
     -     ,    
    .
       ,       (  
 QUIT,      ),      
,   DO,      DO,      .
  DO   ,    ,
     .
   D     -   (.  .
4.3).  ,    ,      
   QUIT,        
   DO    ,   DO.     DO 

,       $TEST,  DO  
     32                             
                             5.  .


    .
    ,    , ,   DO -
     DO.
           , -
   .        
  .

          .
                      
     DO ^A1,^A2           A1  A2
     D UK+2:I>0,UA:I=0       
                         UK,   I>0,    I=0 -
                             UK.

     DO  .
   _DO ::= _[(_.)][]
   _ ::= [][<,>*]
    ::= 
      9 .
          -
  %1,...,%9         .  
 ,       .

          .
        A: A<>W %1*%2 Q - :
      >D A(3,5)
      15
      >S B=10 D A(B,2*2)
      40

    DO<>      .


     5.2.2.  ELSE

   _ELSE ::= E[LSE] []
    ELSE     $TEST,   
    IF  JOB   LOCK, OPEN,  READ  
  .    $TEST    (0),    
,   ELSE    .      -
   .

          .
      CEN<>IF ACE=30 SET A=12
      <>WRITE "ACE" ELSE  QUIT
      <>READ !,"ACE=",ACE

       CEN "",   SET.  
"ACE"     . ,      
CEN  (0),   QUIT.     -
  .







                                                                 33
                             5.  .


     5.2.3.  FOR

   _FOR ::= F[OR]  _ =
                    _FOR <,_FOR >*
   _FOR ::=  !  :  !
                     :  : 
    FOR -   ,    , -
             .  ,
      FOR       -
,    FOR.
    FOR      :
      1)       ,    
             ,    ;
      2)    ,     -
          ,    :
                     1.       -
                 ;
                     2.     , 
                   ;
                     3.   FOR;
                     4.         ,  
                  ,    ;
                     5.      2- -
                      3.
                0,     -
          ,     2,     ,    
          ,      
           .
                FOR     
          ,   .        ,
              ;
      3)       ,   -
                FOR  -
          ,           
           .      QUIT 
         GOTO. ,      ,   -
                .
          ,      
   QUIT  GOTO.
            .  QUIT    
      ,   GOTO  
   .

          .
     1.    QUIT      -
     .
     2.           -
                 
           .

          .
     FOR I=2,8,15,3.14 WRIE I," " ;   4 .
     F I=1:2:14 F J=0:-1:-5 R (I,J) ;  

    FOR     .



     34                             
                             5.  .


   _FOR ::= F[OR]  
        ,        QUIT  
GOTO.

          .
  >S A=0 F  S A=A+1 ; -      A (  
     <MAXNUM>),    .
  >S A=0 F  S A=A+1 Q:A=100 ;   100 .


     5.2.4.  GOTO

   _GOTO ::= G[OTO][] 
                    __GOTO
   __GOTO::=_GOTO <,_GOTO>*
   _GOTO ::= _ [] !
          _ V __GOTO!
          __[(_)][]
    GOTO        -
.  GOTO      ,    ,
    ,    .   
     ,      
.        DO. ,    
DO,       GOTO .
    GOTO     . 5.2.3.    GOTO    -
-    . 4.3.

          .
      GOTO ^FIXED ;   FIXED   ;
      G A:SWT=0,U+1^SY ;    A,  SWT  0,
                              
                          U    SY.

     GOTO  .
   _GOTO ::= _
                    [(_)][]
   _ ::= [][<,>*]
    ::= 
      9 .
    GOTO<>      .


     5.2.5.  HALT

   _HALT ::= H[ALT] [] []
    HALT          
     ("").     -
,         .
        ,  HALT .


     5.2.6.  HANG

   _HANG ::= H[ANG][] 
                    __HANG



                                                                 35
                             5.  .


   __HANG ::= _HANG <,_HANG>*
   _HANG ::=  !
          _ V __HANG
    HANG       ,  -
 .
        .      
 0,  .    0,   ,
 ,  .
         HANG .

          .
     WIT<>I A<10 H 60 W "MIN" Q ;    A<10,    
       1 .  MIN    .

          .
      HANG  HALT   ,  HALT   .


     5.2.7.  IF

   _IF ::= I[F]  __IF !
                    I[F] 
   __IF ::= _IF <,_IF>*
   _IF ::=  !
          _ V __IF
    IF          -
 .        .  
  "" (),      
  .
     "I 1,2,3"  "I 1 I 2 I 3",   
  ,    ,    "&"  -
.
   ,  I $D(A(1)) 10,A(1)>0  ,          I
$D(A(1)) 10&(A(1)>0)     (),  A(1)    
.
       "" ( ),    
  ,   .
    IF      $TEST.    
 , $TEST    (1).     
$TEST   "" (0).
   IF    .      
 $TEST.  $TEST  1 (),      -
 ,   $T  0 (),     
.

          .
      Z<>IF COM=0.025!(COM=.03),NAME="OUT" W #
      <>I  D ^PUT

    COM  0.025  .03,   NAME     "OUT",  
,     PUT.       -
.






     36                             
                             5.  .


     5.2.8.  QUIT

   _QUIT ::= Q[UIT] [] []
    QUIT      DO, -
  XECUTE   FOR.
      QUIT,   ,   
    .         -  
 .   DO, XECUTE  FOR     -
.    DO  XECUTE      FOR  
  .    QUIT,    -
  1,     DO, XECUTE   FOR.
                 
(), QUIT         . 
       (..  :),
QUIT        .

          .
      LOOP<>FOR X=1:1:100 SET A=A+1 Q:A>X
               . . .
         A  ,    X,  QUIT  
      FOR    LOOP+1.
      EXMPL<>FOR X=3:33:3300 D B I X+M=Y Q
              2          3 
      NEXT<>  . . .
                . . .
      B<>I PP'>1.2 Q  ;  2 
      <>D ^A Q
            4 

         ,        FOR.
   EXMPL,      3.    PP'>1.2,  QUI
  2             FOR.  
PP>1.2,   A,    4.
     A            
  QUIT,     QUIT,      DO,
    2 .  X+M=Y,  QUIT -
  1,    NEXT.


     5.2.9.  XECUTE

   _XECUTE ::= X[ECUTE] [] 
                    __XECUTE
   __XECUTE ::= _XECUTE
                    <,_XECUTE>*
   _XECUTE ::=  [] !
          _ V __XECUTE
    XECUTE  ,    ,   -
      .   -
     ,          QUIT
 .       XECUTE -
         XECUTE ,  
  .
     XECITE    .    ,  
     .



                                                                 37
                             5.  .


      XECUTE    ,  -
  DO     QUIT.
       XECUTE   FOR,    
      QUIT,  ..    
XECUTE   ,       ,    
    QUIT.
       XECUTE   DO,     
,    DO.        
QUIT,     ,       
 DO.
      XECUTE   GOTO,    -
  ,     GOTO.    
QUIT,          -
  XECUTE,     GOTO.

          .
     XECUTE "SET A=3" ; -    XECUTE  A -
       3.
     S XI="ZS EXMPL O 47 U 47 ZL  ZS EXM2" X XI ; -    
       ,        -
           EXMPL,    (-
      47)           
       EXM2.

     ,    XECUTE    ,  
        .
       XECUTE    
  ,   ( ),    .


     5.2.10.  JOB

   _JOB ::= J[OB] []  _JOB
   _JOB ::= _ [_
                    [,_]]
                    [:] [:] !
          _ V _JOB
   _ ::= [_] ^_
   _ ::= []
   _ ::= 
    ::= 
              -
,     (   ).   ,  
  ,      JOB, -
  .
           ,
   .       ,
             
    .
     -  ,    .
                1
.     ,   .  
     ,       -
  .      ,  
 .



     38                             
                             5.  .


       ,      -
 .
      ,       
  .
         ,     -
.     .  , ,    -
- ,  ,     ,
      OPEN      .  
     .  -
  JOB    $T  ,  
.    , $T   1 (). 
     (,   ), $T  -
  0 ().
         $ZB    
 .

          .
  >JOB A1^PPM ; -   PPM   ,   -
        A1.
  >J ^EXMP["AB0"] E  W !," " ; -      EXMP,
        AB0.       -
      " ".           
       .


     5.2.11.  ZQUIT

   _ZQUIT ::= ZQ[UIT] [] 
    ZQUIT     '   -
  .
    ZQUIT   ,          
           DO
 XECUTE.  ZQUIT       -
 ,   '       
DO  XECUTE.
           ZQUIT   -
    .  [2].
               ,
       .   -
    NAKED,    ZQUIT,  -
     ,   
   .      -
        ,    
 $ZERROR     ,   
  DO,    ,   .

          .
     ZQ:$P($ZE,">",1)["NAKED"
     U 0 W !,",  ",$P($P($ZERROR,">",2),"^",1)
     W " ",$P($P($ZERROR,"^",2),":",1)
     W " ",$E($P($ZERROR,">",1),2,99)







                                                                 39
                             5.  .


     5.3.  -.

       -   . 
           
 ,  .        
 ,       .    
   .    - 
        ,     0.
     ,     ,    -
  -.
           -,  
 ,    :
      1)     OPEN;
      2)      USE;
      3)     READ, WRITE, ZLOAD, PRINT, ZWRITE,
         ZPRINT;
      4)       
         CLOSE.
    ZSAVE    .
    VIEW  ZUSE    -.
       ,       
.   [2].


     5.3.1.  CLOSE

   _CLOSE ::= C[LOSE][] 
                    __CLOSE
   __CLOSE ::= _CLOSE <,_CLOSE>*
   _CLOSE ::= _ [:] !
          _ V __CLOSE
   _ ::= 
   CLOSE          .
       ,        
       .
     CLOSE -     ,      
   .           
(     ),    -
 .           
.   CLOSE     
    .

          .
     >CLOSE 3,64 ;   3  64.


     5.3.2.  OPEN

   _OPEN ::= O[PEN] [] 
                    __OPEN
   __OPEN ::= _OPEN<,_OPEN>*
   _OPEN ::= _ [:[]
                    [:_ ]] !
          _ V __OPEN
   _ ::= 



     40                             
                             5.  .


    OPEN      -.  -
    .
        ,         
 .    ,     
.   ,    OPEN   -
.      ,       
 .      ,  
   ( ),     -
,   .           ,
    .
      OPEN     , -
   $TEST. $T   ,   -
 .    , $T   0.

          .
         OPEN     
     ,      ,      
      (      )   -
       ,  ,     -
     .           
      LOCK.

       OPEN    -
 .        ,  
  ..   ,   ,    
 .        ,  
,     CLOSE.    . 
 [2].

          .
      O 3,4,5 ;   3, 4  5.
      O 47::5 E  W !,"" ;   47 ( )
                                    5
                               ,   "".
      O 59:(0:3000) ;  OPEN  .


     5.3.3.  PRINT

   _PRINT ::= P[RINT] [] [] !
          P[RINT] []  __PRINT
   __PRINT ::= _PRINT
                    <,_PRINT>*
   _PRINT ::= _ !
          _ : _ !
          _ V __PRINT
    PRINT    ZPRINT     -
     .

          .
      >PRINT MTI+3 ;  ,    MTI.
                         
                         .
      > LABI:LABI+10 ;  11 ,    LABI.




                                                                 41
                             5.  .


     5.3.4.  READ

   _READ ::= R[EAD] [] 
                    __READ
   __READ :: =_READ <,_READ>*
   _READ ::=  !  !
     _ [:_] !
     _[ _][:_] !
     *_ [:_] !
     _ V __READ
     -    1  255,     -
 .
    READ            
    -.  ,  
   READ,     .  -
       $X   $Y  (.
. 2.6).
       READ,   ,    
  ,      (    ,
   <NODEV>).      :
 !  -               .  $X
        0,  $Y  1.
 #  -    ( ). $X  $Y   0.
?N  -  N -  .   ,      N-  .
       $X>=N,    ;  $X<N, $X -
        N.    -  0.
               ,
: #!!?5.
        ,    -
     .        
 ,      .
        ,       
 -.
        ,    ,    
  .         ,  ..
   <>,  $TEST   0,    -
   ,       .
   .
        " ",     -
  ,     .
      READ - *_,    ,  
,    ,  ,    -
 -  -7  .         -
 ,     -1,  $T -  0.

          .
  READ A ; -     A.
  R !,":",ANSW:5 ; -   ""        
      5 .


     5.3.5.  USE

   _USE ::= U[SE] []  _USE
   _USE ::= _ [:] !
          _ V _USE


     42                             
                             5.  .


    USE           
-.          
OPEN.         OPEN.
       USE     .

          .
     USE 3 ;      .


     5.3.6.  VIEW

   _VIEW ::= V[IEW] [] 
                    __VIEW
   __VIEW ::= _VIEW
                    <,_VIEW >*
   _VIEW ::= !  :  !
           : [] :  !
           : [] :  :
          [] :  !
          _ V __VIEW
    := 
    VIEW        ,    
  .        .  
  VIEW     :
      1)       VIEW , 
         VIEW    ;
      2)       VIEW  ,  
           VIEW      
             ,   VIEW,  
          ;
      3)       OPEN  63.
      VIEW    ,     .
      (512 ).    -
,       ,   
VIEW.   ,    VIEW   
.
           :
          A=T*2097152+(N*262144)+B
 A -  ; T -   (0  DK, 1  DM, 2   DP);  N  -
  ( 0  7); B -    .
          ,  ..    
 (B)     262144.
               .
          .  -
,  ,      ,    
  ,   ,      
     .       
             
,        .
   ,   ,      -
  . , DM0       
_5408.   VIEW           
 ,        .
         "S0", "S1"   ..  
 0 -     ,    .



                                                                 43
                             5.  .


      VIEW   ,  ,  -
    .        
  ,   - ,     -
 .     , ..    -
.          .  4.
    .        -1.
  -1  -2,    40   56     
,   56   64  -   -.
       +128  +32767     -
  ,          .
     VIEW            .
          
    .   ""  , 
 . 4;        -1,        
      ()    
  .

         VIEW        4
------------------------------------------------------------
!      !      !                           !
! (N)!    !                                !
!----------------------------------------------------------!
! 0<N< !  1  63 !        !
!     !            !    .    !
!            !            !        !
!            !            !  .      !
!            !            !     -   !
!            !            !    $JOB  !
! 0<N<1024*VB!      0     !  N    - !
!            !            !   VIEW, V - - !
!            !            !     VIEW  !
!            !            !    (-  !
!            !            !    OPEN  USE).   !
! 0<N<65536  !     -1     !  N -          !
!            !            !  .                   !
! 0<N<65536  !     -2     !  N -          !
!            !            !  .           !
! 0<N<16384  !   128    !  N -      !
!            !   32767  ! ,      !
!            !            ! .      !
!            !            !            !
!            !            ! ( - 64 ).             !
------------------------------------------------------------

              -
 ,     .   -
    ,  -      (
).               
.

          !
        VIEW     -
        .         
      .




     44                             
                             5.  .


        VIEW .   [2].



     5.3.7.  WRITE

   _WRITE ::= W[RITE] [] 
                    __WRITE!
                    W[RITE] [] []
   __WRITE ::= _WRITE
                    <,_WRITE>*
   _WRITE ::=  !  ! * !
     _ V __WRITE
    WRITE      -.
   WRITE          -
.
       ,       (.
5.3.4).
       ,   .
       *,       -
  ,       -.    
      .

          .
     W !,A ;      A.
     W *5 ;       .


     5.3.8.  ZLOAD

   _ZLOAD ::= ZL[OAD][] 
     __ZLOAD ! ZL[OAD][] 
   __ZLOAD ::= _ZLOAD
                    <,_ZLOAD>*
   _ZLOAD ::= _ !
          _ V __ZLOAD
       ,           
 .
   ZLOAD        -.
    ,       , :
      1)   N  ,    -
         ;
      2)   US  ,     ;
      3)       ZLOAD        ,
                  -
             .
         .
    ZLOAD          
 XECUTE.

          .
     ZLOAD EXMPLE ;   EXMPLE  .
     O 48 U 48 ZL  C 48 ;    
                           .




                                                                 45
                             5.  .


     5.3.9.  ZMARKER

   _ZMARKER ::= Z[MARKER] _,_
   _ ::= 
   _ ::= 
        .
           -.
      ^MUX     
  ^MUX   .    .  [2].    
   .

          .
           10  .
     >ZM 0,10 W ""


     5.3.10.  ZSAVE

   _ZSAVE ::= ZS[AVE][] 
     __ZSAVE ! ZS[AVE][] 
   __ZSAVE ::= <,>*
    ::= _ ! -_
    ZSAVE  ,      
   .       .
     ,    ,    -
  $ZNAME.  $ZN   ,    ZSAVE  
   .
      , ZSAVE     .
      ZS -_     ,  -
        .      
 ,             (ZL),
   (ZS).        
<BLPRT>.
       DO, GOTO  JOB (ZJ) .
        ,      ZL.
       %RSF.

          .
  ZS ABCD ; -  ,    ,  
      ABCD.
  ZL XI . . . ZS   ; -   XI,        
         .


     5.3.11.  ZUSE

   _ZUSE ::= ZU[SE][]  _ZUSE
   _ZUSE ::= _!_ V
                    _ZUSE
    ZUSE     - , -
      .
       N  .      ZUSE  
   1, 4 - 19, 64 - 191.
            ZUSE,  
      ZUSE     
  '       ,    

 ZUSE.
     46                             
                             5.  .


          ZUSE   
.

          .
     ZU 1 W !,":  !!!"


     5.3.12.  ZPRINT

   _ZPRINT ::= ZP[RINT][] !
     ZP[RINT][]  __ZPRINT
   __ZPRINT ::= _ZPRINT
                    <,_ZPRINT>*
   _ZPRINT ::= _!_:
          _ ! _ V
                    __ZPRINT
    ZPRINT     ,     -
 ,    .
    ZPRINT          
    .
    ZPRINT       ,  -
,        ,      
      .
              .
   ,             
,   END:
   ZP +2,+4,+6:END


     5.3.13.  ZWRITE

   _ZWRITE :: =ZW[RITE][]  !
          ZW[RITE][]  _ZWRITE
   _ZWRITE ::= _ ! *
          _ V _ZWRITE
    ZWRITE          
    .       ,
    .     -
  ,      .        
    ,         
 .

          .
     ZW (3) ; -           
         A,        
     "3":
     A(3)="6"
     A(3,2)="2"
     A(3,4,5)="5"

         ZWRITE. :
   _ZWRITE ::= *
           , 
 ,    .   
   .  [2].



                                                                 47
                             5.  .


          .
      ZW *   $ZA.



     5.4.  .



     5.4.1.  ZINSERT

   _ZINSERT ::= ZI[NSERT][] 
                    _ZINSERT
   _ZINSERT ::=  : _!
          _ V _ZINSERT
    ZINSERT         
  .
             .  
     . ..,      
,     ,    ,     
  .
    ZINSERT          -
  XECUTE.
     ZINSERT    .
          +0.

          .
      :
       A   S A=0
       B   S B=0
       C   S C=0
      : ZI "X W !"""":B -   :
       A   S A=0
       B   S B=0
       X   W !""
       C   S C=0


     5.4.2.  ZREMOVE

   _ZREMOVE ::= ZR[EMOVE][] 
                    __ZREMOVE !
                    ZR[EMOVE][] 
   __ZREMOVE ::= _ZREMOVE
                    <,_ZREMOVE>*
   _ZREMOVE ::= _ !
          _ : _ !
          _ V __ZREMOVE
    ZREMOVE    ()    
,      .
   ZREMOVE     .       ZREMOVE
  ,  .    ,  -
,        .
   ZREMOVE         (  
 ),     ,    
 (. . 4.1).


     48                             
                             5.  .


    ,     ,      
  ZREMOVE  ,     ZSAVE   
 (. 5.3.9).
    ZREMOVE          -
  XECUTE.

          .
        ZR   (    )
        ,        .
     
          ZR +5,+7:+9    ( ZR)    
      5, 8, 9  10.

          .
     ZR MTI ; -   MTI
     ZR MT2:MT2+5 ; -  6 ,    MT2.



     5.5.  .

       :
      1)  :  ,   , 
          :
            >
      2)  :  ,   ,  -
         :
            D>
      3)    :  ,   ,
              . :
            DB>
      4)  :        .
          . :
            B>


     5.5.1.  BREAK

   _BREAK ::= B[REAK][]  !
          B[REAK][]  
    BREAK       -
      :
   <BREAK> _ _
      .
         ZGO (. 5.5.2).  
  ,     0  1.    
   BREAK     .    -
  1,   BREAK     .
       DSM11 V2  DEC    B 2,
     $ZTRAP  DSM11 V2:   $ZT
     1, ..  QUIT  
         .
        -3.3    B -2.
    ,            
 ,  ,      
 , ..     ,   -

 .
                                                                 49
                             5.  .



          .
     REAK:A>0 ...  A ,   -
     .
      1 ;   BREAK  .


     5.5.2.  ZGO

   _ZGO ::= ZG[O]  !
          ZG[O][]  [__]
   __ ::= _ ! _
    ZGO        BREAK
        ,   /
.
     ZGO          
      BREAK      
 .    ZGO        
  (    ),      
  ,   ZBREAK.
    ZGO               
 ,     .
      BREAK    (/C)    
,     ZGO  .

          .
     A U 47 R A B:A=1 S X(A)=0
     <BKERR>A B:A=1 S X(A)=0
     >
      ZGO   .


     5.5.3.  ZBREAK

   _ZBREAK ::= ZB[REAK][] 
                    _
   _ ::= ON ! OFF ! OVER ! IN ! OUT
    ZBREAK      ,  
  .
    ZBREAK        BREAK,    ZGO  
  $ZBREAK.  ZBREAK   :
      1)  ZBREAK    ,     
           ON ()  OFF ().    
                   
          OFF (  ).        ZBREAK ON,
             BREAK    ,  -
              $ZBREAK;
      2)  ZBREAK       
           .     ZBREAK   -
             .          
               OVER, IN  OUT.
    ZBREAK OVER      DO      XECUTE  
 ,    DO    XECUTE,
  .          
.   ,    -
      .


     50                             
                             5.  .


    ZBREAK IN            -
  .
    ZBREAK OUT       ,        
 QUIT    ,          
XECUTE .
    ,   " "     
,   .
       ()      ,    
 ZBREAK IN.          -
 /B.        . [2].


     5.5.4.  ZTRAP

   _ZTRAP ::= ZT[RAP] 
          [___]
   ___ ::= 
    ZTRAP        ZTRAP      ,
  "   ".    -
  .       ,    
ZTRAP,    $ZERROR.
     ZTRAP        "Z"  
  ,      .

          .
      : ZTRAP "ERRI" ; -     ,  
      :
     <ZERRI>+^ : 
       ZTRAP       :
     <ZTRAP>+^ : 



     5.6.     .



     5.6.1.  LOCK

   _LOCK ::= L[OCK][] 
          __LOCK ! L[OCK][] 
   __LOCK ::= _LOCK<,_LOCK>*
   _LOCK ::= [:_]!
          (_)[:_]!
          _ V __LOCK
   _ ::=  <, >*
    LOCK      .   
       ,    
     LOCK      -
.      ,       
        .      
LOCK   ,      , 
    LOCK,         ,
             LOCK.
LOCK.     ,      -
   .


                                                                 51
                             5.  .


    LOCK    .
       ^A,   . 5.

                         * ^A
                    .        .
            (1) *               * (2)
            .      .
  (1,1) *              * (1,2)
                   .   .      .
        (1,2,1) *      * (1,2,2)  * (1,2,3)
                                .    .
                    (1,2,3,1) *        * (1,2,3,4)

                     . 5

     LOCK ^A(1,2,3)       
  LOCK    :  ^A(1,2,3,4),  ^A(1,2,3,1),   ^A(1,2,3),
^A(1,2), ^A(1), ^A.
     A    LOCK  , 
 ^A(1,2,3) ""  LOCK: ^A(2), ^A(1,1), ^A(1,2,1), ^A(1,2,2).
     LOCK     ,  -
     LOCK,         .
,    :
   LOCK ^A(1,2)
   LOCK (^A(2,1),^A(1,1),^A(1,2,4))
   LOCK (^A(1,1),^A(1,2,3,4))
   ^A(1,1)  ^A(1,2,3,4)  "".
         LOCK,     
    .      ,    
    LOCK ,    LOCK   
 . ,  :
   LOCK ^A(1,2,4),^B(4),^ABC(3,1)
  ,    :
   LOCK ^A(1,2,3) ; ^A(1,2,3)
   LOCK ^B(4) ;  ^B(4),  ^A(1,2,3)
   LOCK ^ABC(3,1) ;  ^ABC(3,1),  ^B(4)
   ^(3,1)     .
       (  -    ),  
  LOCK ,   ,  
  .         ,
     ,        -
 .
    ,      ,  
 ,     ,   
,     .
         ,    -
.       ,    -
   ,        ,  
  .
      LOCK      
   $TEST.          
    LOCK,  $TEST   0 ("").
      LOCK         
  IF  ELSE.
     LOCK   : LOCK ^A(1,2):5 ;  -      
 LOCK  ^A(1,2)   5 ,      

,  $TEST    ,      
     52                             
                             5.  .


.    ,  ^A(1,2)  ,  -
 $TEST    1.
     , :
      1)    LOCK      ,  
           ;
      2)        ;
      3) LOCK          -
         . LOCK        .
     LOCK      -
    .
    LOCK    ,   -
  HALT.


     5.6.2.  ZALLOCATE

   _ZALLOCATE ::= ZA[LLOCATK][] 
                    __ZALLOCATE
   __ZALLOCATE ::= _ZALLOCATE
                    <,_ZALLOCATE>*
   _ZALLOCATE ::= [:_] !
    ZALLOCATE         .  
  ,    ZALLOCATE     
.             ,
      LOCK    ZALLOCATE.
   ,   :
   ZA ^A,^B,^C
   . . .
   ZA ^D,^E
  :
   -  () ^A,
   -  () ^B,
   -  () ^C,
   -  () ^D,
   -  () ^E.
       LOCK  ZALLOCATE     -
       .     -
  ,     ZALLOCATE   -
         .    
   ,    
           
.    ,      -
      ,  
    .
     , :
      1)    ZALLOCATE    ;
      2)        ;
      3)  ZALLOCATE         
          .
      ,     
ZALLOCATE   :
      1)   ZDEALLOCATE   ,     -
         ;
      2)   ZDEALLOCATE  ;
      3)   HALT.



                                                                 53
                             5.  .


     LOCK,  ZALLOCATE     -
,          -
.      ZALLOCATE      
 ,    ,     -
  .   "  "      
      ,     LOCK.
            ,
       . ZALLOCATE  
 ,          
LOCK  .


     5.6.3.  ZDEALLOCATE

   _ZDEALLOCATE ::= ZD[EALLOCATE][]  !
                    ZD[EALLOCATE][] 
                    __ZDEALLOCATE
   __ZDEALLOCATE::=_ZDEALLOCATE
                    <,_ZDEALLOCATE>*
   _ZDEALLOCATE::=!_ V
                    __ZDEALLOCATE
    ZDEALLOCATE      -
,             ZALLOCATE.  
ZDEALLOCATE            
,      .
    ,     ZDEALLOCATE      
 ,        LOCK.
           ^A,  ^B,  ^C  
  LOCK,      ^D  ^E  -
  ZALLOCATE.     ZDEALLOCATE   ,
     ^D   ^E.  
 ^A, ^B  ^C  .

          .
     L ^,^B,^C
     ZA ^D,^E
     . . .
     ZD

          .
       LOCK      "  '"
     (),                
     9,    LOCK        -  
          .
      ZA      .

               .
               A
           ZA ^A . . . ZA ^B . . . ZD
           11          12          13
               B
           ZA ^B . . . ZA ^A . . . ZD
           21          22          23

            11   22,  21  12,    
                12  22 .

             ZA    (^A,  ^B)    
     54                             
                             5.  .


             ,      ,
          .
























































                                                                 55
                             6.  .


      6.  .

             
 .        .  
   - .
             -
  (. . 3.1).          
 "$".        , 
$ ( ,   $  Z).
      27 :
 ::= _$ASCII ! _$CHAR !
        _$DATA ! _$EXTRACT ! _$FIND !
        _$GET ! _$HIGH ! _$JUSTIFY !
        _$LENGTH ! _$NEXT ! _$PIECE !
        _$RANDOM ! _$SELECT ! _$TEXT !
        _$VIEW ! _$ZSORT ! _$ORDER !
        _$ZCALL ! _$ZFUNCTION ! _$ZHIGH !
        _$ZLINE ! _$ZMEMORY ! _$ZNEXT !
        _$ZORDER ! _$ZPLUS ! _$ZREAL
        _$ZUCI !
           .


     6.1.  $ASCII

   _$ASCII ::= $A[SCII](_
                    [,_])
   _ ::= 
   _ ::= 
    $ASCII       .
     -    (  ), -
     .   ,    -
.
      -          ,
 -1.

          .
                      
         $ASCII("ABC",2)         66
         $A("ABC")               65
         $A("")                  -1


     6.2.  $CHAR

   _$CHAR ::= $C[HAR](_)
   _ ::= <,>*
          0   255.    
.
    $CHAR          -
 .
   ,    0, .

          .
                      
         $CHAR(65,66,67)        ABC

         $C(44,36,44)           ,$,
     56                             
                             6.  .




     6.3.  $DATA

   _$DATA ::= $D[ATA](_)
    $DATA        .  -
     P+G,
  P=1,     ;
     P=0    ;
     G=10,     ;
     G=0    
       $DATA  :   
   :
   K EXM,^B
   S EXM(1)="ABC",EXM(1,1,1)="$",EXM(1,1,2)="X"
   S ^B(1)=0,^B(1,1,1)=15,^B(1,1,2)=0
:
   $D(EXM)=10 $D(^B)=10
   $D(EXM(1))=11 $D(^B(1))=11
   $D(EXM(1,1))=10 $D(^B(1,1))=10
   $D(EXM(1,1,2))=1 $D(^B(1,1,1))=1
   $D(EXM(3))=0 $D(^B(1,1,3))=0


     6.4.  $EXTRACT

   _$EXTRACT ::= $E[XTRACT](_,
                    [_[,_]])
    $EXTRACT     ,   ,
   ,         .  
   ,    .  :
      1)       ;
      2)          , -
          -  ;
      3)       ,    ;
      4)        ,    ,
                 ;
      5)       1,     -
          1.
      $EXTRACT       
   .

          .
                              
          $E("",4,9)         ""
          S TTT="" W $E(TTT)    ""


     6.5.  $FIND

   _$FIND ::= $F[IND](_,,
                    [_])
   _ ::= 
    ::= 
    $FIND     ,   , -
  ,        1.    

 ,     .
                                                                 57
                             6.  .


      ,  $FIND  0.

          .
                              
           $F("ABCABC","BC")            4
           $F("ABCABC","BC",3)          7


     6.6.  $GET

   _$GET ::= $G[ET](_
          [,__])
   __ ::= 
    _   ,      
  .   ,     -
,      .    
 ,  <>.


     6.7.  $HIGH

   _$HIGH ::= $H[IGH] (_)
     ,  $ORDER,    -
 .

          .
     WRIE $HIGH(^A("")) ;        ^A    
     .

          .
       $HIGH   30  ,  $ORDER.


     6.8.  $JUSTIFY

   _$JUSTIFY ::= $J[USTIFY](,)!
          $J[USIFY](,,)
      $JUSTIFY     ,   -
   .        , -
  .      ,    ,
     .
       $JUSTIFY        .
   ,  -  ,   -  
  .          ,  
  .         
 ( ,  ,   )    -
  .           
,    1   -1,         
   .      .
              .
     ,     , -
  .

          .
                              
           $J("",5)                "  "

           $J(8453.459,6,2)           "8453.46"
     58                             
                             6.  .




     6.9.  $LENGTH

   _$LENGTH ::= $L[ENGTH] (_
                    [,])
    $LENGTH         -    
.   ,     0.
    $LENGTH        ,  
 .         -
,       .   
     .
    ,   ,      ,    
  $LENGTH      .

          .
                              
          $L("")                     3
          $L(X)                    X="005B",  4.
          $L("AA,B,CC",",")             3


     6.10.  $NEXT

   _$NEXT ::= $N[EXT] (_)
     $NEXT         
     .     
          .   ..            
NAME(S1,S2,...,SN),  T, ,  NAME(S1,S2,...,T) , SN<T  
  NAME(S1,S2,...,T1), ,  SN<T1<T.
    $NEXT        -
         (  
),     -      -
 .
        ,  -1.
         ,    -
     -1

          .
        A   :  A(1),  A(1,1),  A(1,2),  A(1,1,1),
     A(1,1,3), A(1,1,3,0) :
                      
          $N(A(1))              -1
          $N(A(1,1))             2
          $N(A(1,2))            -1
          $N(A(1,1,-1))          1
          $N(A(1,1,2))           3
          $N(A(1,1,3))          -1
          $N(A(1,1,3,-1))        0


     6.11.  $PIECE

   _$PIECE ::= $P[IECE] (_,
                    ,
     [__ [,__]])


                                                                 59
                             6.  .


    ::= 
   __ ::= 
   __ ::= 
          .    
   "" .
    $PIECE    ,   , -
   ,   ,      
,   .
       ,          
.
            ,    ,
        .
       $EXTRACT.

          .
                              
          $P("/F/","/",2,3)     "F/"
          $P("..Y",".",2)            ""


     6.12.  $RANDOM

   _$RANDOM ::= $R[ANDOM] ()
    $RANDOM        0  -
   1.       1.
   : $R(12) -     0  11.


     6.13.  $SELECT

   _$SELECT ::= $S[ELECT] (__$SELECT)
   __$SELECT ::= _$SELECT
                    <,_$SELECT>*
   _$SELECT ::= _ : 
     ::= 
    $SELECT      ,   
  (1).
       ,  .

          .
                                      
        $S(A=3:5,1:0)                    5,  A=3,  0;
        $S(X>0:"GOOD",X<0:"BYE",X=0:"")  "GOOD",  X>0;
                                         "BYE",  X<0;
                                           , X=0


     6.14.  $TEXT

   _$TEXT ::= $T[EXT] (_$TEXT)
   _$TEXT ::=  ! +
    $TEXT       .    
   +,          .
            -
.



     60                             
                             6.  .


    ,  ,   ,      .
$T(+0)  $ZN.

          .
         :
     <>S A=B
     <>S B=0
                      
            $T()          S A=B
            $T(+1)            S A=B


     6.15.  $VIEW

   _$VIEW ::= $V[IEW] ( [,])
    $VIEW     ,      
.    .    ,    -
 VIEW     (. 5.3.6).
      $VIEW      
        (. . 4)
         ,   
.

          .
     $V(40) -  40-     .
     $V(0,0) -      VIEW.


     6.16.  $ZSORT

   _$ZSORT ::= $ZS[ORT] (_)
    $ZSORT    $ORDER       
     .


     6.17.  $ORDER

   _$ORDER ::= $O[RDER] (_)
        $NEXT ( 6.8),      
,        ,  
      .     
    ,   $ORDER     
.

          .
        A   A(1),A(2), 
     $O(A(" "))=1
     $O(A(1))=2
     $O(A(2))="" ()

   $O(__)      
           ""  (),
  .
   ,        $O("").




                                                                 61
                             6.  .


     6.18.  $ZCALL

   _$ZCALL ::= $ZC[ALL](
                    [,_])
   _ ::= [,<>*]
    $ZCALL     ,  -
  .   ,        ,
   ,    ,   
       .
                 
.    .
   $ZCALL-    '  ,    -
     ZCALL.
       ,      -
.       $ZCALL  .  
[2].
     $ZCALL-     .  [2].


     6.19.  $ZFUNCTION

   _$ZFUNCTION ::= $ZF[UNCTION]
     ([_]:[_])
   _ ::= . !
           <,>*
   _ ::= []<,>*
    $ZFUNCTION        
-.            
  ,  ,   
.
     - ,      MUMPS-    
.
     - ,   MUMPS-     -
 -,     .
      .  [2].
             
 .
                -
    <.>,      -
    .
              
     ,     
    .
         ^%MC(_,"T",N).


     6.20.  $ZHIGH

   _$ZHIGH ::= $ZH[IGH] (_$ZHIGH)
   _$ZHIGH ::= _$ZORDOR
    $ZHIGH    $ZORDER     
   .






     62                             
                             6.  .


     6.21.  $ZLINE

   _$ZLINE ::= $ZL[INE] (, )
    ::= 
    ::= 
      (   255 ),     
   .
   ,  $ZL(5,"AB")  "ABABABABAB".


     6.22.  $ZMEMORY

   _$ZMEMORY ::= $ZM[EMORY](_$ZMEMORY)
   _$ZMEMORY ::= [+] ! -
    $ZMEMORY         -
.
          
.     $ZMEMORY  0,      -
   ,  MM-    
(1MM = 64).
         MM-,      
 .          -
  .
    $ZMEMORY    .   
 '     . -
   $ZMEMORY     .


     6.23.  $ZNEXT

   _$ZNEXT ::= $ZN[EXT](_$ZNEXT)
   _$ZNEXT ::= _ !
          _ V _$ZNEXT
             
.  $ZNEXT       -
   (  )    
      .     -
,        ,    -  
 -1.        ,    
    -1.  ,   $ZNEXT  
  $ZORDER (. 6.18).
     $ZNEXT       <SYNTX>.

          .
                 
      ^X.
     S ^X(1,2,3)="1",^X(2)="2",^X(1,2,3,4)="12"
     W $ZN(^X(-1)) ; : ^X(1,2,3)
     W $ZN(^X(1,2,3)) ; : ^X(1,2,3,4)
     W $ZN(^X(1,2,3,4)) ; : ^X(2)


     6.24.  $ZORDER

   _$ZORDER ::= $ZO[RDER](_$ZORDER)



                                                                 63
                             6.  .


   _$ZORDER ::= _ !
          _ V _$ZORDER
    $ZORDER          
         
      (  )    
   .
    $ZORDER   $ZNEXT,    ,   -
           -
   .          
 ,      .

          .
           :
     ^A(1),^A(1,1),^A(1,3),^A(3),^A(3,2),^A(3,4,5)
         $NEXT,$ORDER,$ZSORT         
     $ZORDER, $ZNEXT       :
                             
                      $NEXT,$ORDER,$ZSORT    $ZNEXT,$ZORDER
           ^A(1)             3                   ^A(1,1)
           ^A(1,1)           3                   ^A(1,3)
           ^A(1,3)                     ^A(3)
           ^A(3)                       ^A(3,2)
           ^A(3,2)           4                   ^A(3,4,5)
           ^A(3,4,5)                  


     6.25.  $ZPLUS

   _$ZPLUS ::= $ZP[LUS] (
                    [,_])
   _ ::= <,>*
    $ZPLUS   $ZCALL      ,
        FPU.  FPU  -
       REAL*8.    (  
 )   .
       .   $ZP  -
  $ZREAL,  ,           
.        
 REAL*8.       .
    $ZPLUS-    .    -
 $ZPLUS-:
      1) $ZP(REAL,)        
           REAL*8    ;
      2) $ZP(STR,)     REAL*8    -
               .    REAL*8, 
          <FORMT>;
      3) $ZP(CMP,_1[,_2])  _1   _2  
               :
            0,  _1=_2
            1,  _1>_2
            -1,  _1<_2
             _2 ,  ,   0;
      4) $ZP(POW,_1,_2)                  
         _1**_2 (  );
      5) $ZP(LOG,)  ;



     64                             
                             6.  .


      6) $ZP(EXP,) ;
      7) $ZP(E)  E.

          .
        1.     FPU      
        ZCALL.
        2.        FPU   
               -
       .


     6.26.  $ZREAL

   _$ZREAL ::= $ZR[EAL]()
    $ZREAL           
    REAL*8.         
REAL*8.       ,        8
,   <FORMT>.
         ( !):
      +  - ;
      -  - ;
      *  - ;
      /  - ;
      ** -   .
          <SYNTX>.  
    .   .  
     ,  
,   $ZPLUS.
    $ZREAL     REAL*8.
          .
     >S A=$ZP(REAL,10) ;  A  10   REAL*8
     >S B=$ZP(REAL,3) ;  B  3   REAL*8
     >S C=$ZR(A**B-B)
     >W $ZP(STR,C) ;    
        997

          .
        (A  B   ).
     >S D=A_B
     >S C=$ZR(A*$E(D,9,16))
     >W $ZP(STR,C)
        300

          .
        1.     $ZREAL,  $ZPLUS      
        FPU            
         ^ZCALL.
        2.         (FPU)    
     REAL*8 .


     6.27.  $ZUCI

   _$ZUCI ::= $ZU[CI](_'[,__])!
          $ZU[CI](_'[,__])



                                                                 65
                             6.  .


    $ZUCI     '      
'    '   .
    ' -     .
      -  .
    ' -    0  30.
      -    0  7.          
'        ,    
.
    $ZUCI       ',   
 ,        :
   $ZU(_') -  ',   ;
   $ZU(_') -  ',   ;
   $ZU("") -   ',   ;
   $ZU(0) -   ',   .
       ',      ,  
,    ,         
 .           ,  
  <NOUCI>  <NOSYS>.
         $ZUCI ' -
   .

          .
         TTT   12,        
      SYS   0. :
                         
          $ZU("TTT","SYS")        12,0
          $ZU(12,0)              TTT,SYS
        ,   -
      .       -
  .       
 %0.
    -:
   $$_(_)

          .
        :
          A  S %0=%1*%2 Q
     :
     >W $$A(5,2)
     10
     >
     ,     ^A,     ,
     :
      >W $$^A(10,3.3)
      33
      >


     6.28.  .

         :
      1)         (  
          $ZC, $ZF);
      2)   (   $ZP).




     66                             
                          7.   .


      7.   .

         -   
/C,       .    -
 :   ,     ,  
'^'   ,   ,       .
    :
      1)    .      -
         ,      (  -
          ,   );
      2)      .   
            ,     /C  (<INRPT>)  
         /Y (<ABORT>);
      3)     .    -
           ,      .
             ,     -
                .
       ,      ,
            (
   $ZT).
      $ZT  SET     (
  [+],  '^'   ),     -
    .  $ZT          
 ,      .    
       DO  FOR.   -
 ,    ,        
 $ZT   ;         
  .
     ,  $ZT   ,  , -
 ,   ,      .
        ,   
  ,          .
     ,        
   ""        -
.


     7.1.    .

          ,    
 .

BLPRT 1)            ,    
        VIEW   .
      2)   ZLOAD  ZSAVE   .
BKERR      BREAK.      -
         .       -
       BREAK  ,    ( $ZBREAK)  -
       /B   .
BUFOV     BYSINC ( -).
CMMND          -
      ,    .
DIVER      .
DKSER  (     )  :
      1)   VIEW      , ,
         ,       .

      2)   (,   , 
                                                                 67
                          7.   .


       ZSAVE, ZLOAD  ..)  ,       
      .
DMCER     -     -
      .
FORMT 1)               
         .
      2)     8  (REAL*8)   $ZREAL.
FUNT   ,            (    
       ZCALL  FPU    $ZCALL, $ZPLUS, $ZREAL).
INDR      .
ISYN                 
      .      :   
      ,             
       .
LVLER           
               
       .
LINER   ,    GOTO, DO, ZGO      -
       $ZTRAP.
MINIM   .
MODER          -
       - (,   ).
MXNUM     ,   .
MXSTR   ,          (255
      ).
NAKED             
        ( $ZREFERENCE      ).
NOBUF    -     .  -
            ,       
         .
NODEV      OPEN     -
      ,           
      -   .
NOEBC              ,  
           .
NOPEN    USE   .
NOPGM     ,         
             (%) .
NOSYS    (    )      
       (   ),     -
      .
NOTSY 1)   ,          -
       (,     ).
      2)         0.    
            .
NOUCI 1)   ' (   ),     
       .
      2)    ',  .
PARN    OPEN  USE              
          N. , <PAR1>    -
       1  OPEN  USE.
PGMOV     ,       -
      :
      1)          -
        ( LOAD, DO, GO );
      2)    ;

      3)      .
     68                             
                          7.   .


PROT        VIEW,      $VIEW
         (%) ,        ,
            .       -
           .
SBSCR     :
      1)   ;
      2)  ;
STKOV     .          
               
      DO, FOR.
STORE           
          .
SYNTX   ,          
      .     ,  -
       ,   .  
            ,   
         ,    .
UNDEF             -
      .
$SERR  SELECT      .
VWERR             
      VIEV     VIEW  ( 63).
               VIEW 
        ,        -
        VIEW.            
      <PROT>.




     7.2.     .

INRPT      ,      
      INPRT (/C).       $ZTRAP.
ABORT      ,      
      ABORT (/Y).       -
       $ZTRAP.


     7.3.     .

CLOBR    .
CRASH   ,          -
      ,    .
DBDGD     .        -
            ,      ,
         .
DBOVF       SET    
          ZSAVE        
             .        
           .
DKHER     .
DKSER   ,          -
          .
DSCON   '.



                                                                 69
                          7.   .


DSTDB            -
      .
KILLR      ^RJD  ^SSD    -
       .
MTERR          $ZA  
             .
PLDER   ,          ,  
        .
SPLER   .

















































     70                             
                       1.   .


      1.   .

     1.1.   .

    ::= _ [] _ !
                    _
   _ ::=  <,>*

   _ V _

     1.2.   .

   _ ::= _ ! _
   _ ::=  !  ! _
    ::= A ! B ! C ! ... ! Z !  !  !  ! ... !  ! 
    ::= 0 ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9
   _ ::=  ! _ ! " !
                      ! $ ! % ! \ ! ] ! ^ ! _ !
                    & ! ' ! ( ! ) ! * ! + ! - ! , ! . !
                    / ! : ! ; ! < ! = ! > ! ? ! @ ! [

   _ ::= !
   _ ::=  !  !  !  ! 2 ! /C !
          /S ! /Q ! /R ! /U ! /O ! /N

     2.1.1.   .
    ::= [+]__ ! - __
   __ ::=  ! 
    ::=  [.] ! .
    ::=  <>*
    ::=  
    ::= E[+] ! E-

     2.2.2.  .
        .
    ::= " _ "
   _ ::= <_>*

     2.3. .

    ::=  <__>* !
                    % <__>*

     2.4. .

    ::= _ !
                    _
   _ ::= _ !
                    _
   _ ::= _ !
                    _ !
                    _ V _
   _ ::= 
   _ ::= (_)
   _ ::= ^_ !
                    ^__ !

                    _ V _
                                                                 71
                       1.   .


   __::=
                    _ !
                    ^(_)
   _ ::=  <,>*
    ::= 

     3.1.  .

   _ ::=  !  !
                     !  !
                    () ! 

    ::= _
                    (__)
   __ ::= _
                              <,_>*
   _ ::= 

     3.2.   .
    ::= [_] _
                    <_ _>*

     3.3.4.  .

    ::= _ <_>* !
          _ V 
   _ ::=  <>* _
                    <_>*
   _ ::=  ! _
    ::= . ! 

     3.4.  .
   _ ::= @ _

     3.5.   .

      :: =
                    @   @ ( )

     4.1.  .

   _ ::=  < >* <>

     4.2.  .

    ::= <_>*
   _ ::= []   < >*
                    [  ;]  !
                    []  [ ;] 
    ::=  !  !
    ::= <_>*

     4.3.2.     .





     72                             
                       1.   .


   []<>[] < >*D 
          < >*[;]

   []<>.<.>*< >*DO 
                    < >*

      5.  .

    ::= _ []
                     _
   _ ::=  <,>* ! 
    ::= _ !
          _ V _

    ::= : 

 ::= _BREAK ! _CLOSE ! _DO !
        _ELSE ! _FOR ! _GOTO !
        _HALT ! _HANG ! _IF !
        _JOB ! _KILL ! _LOCK !
        _NEW ! _OPEN ! _PRINT !
        _QUIT ! _READ ! _SET !
        _USE ! _VIEW ! _WRITE !
        _XECUTE ! _ZALLOCATE ! _ZBREAK !
        _ZDEALLOCATE ! _ZGO ! _ZINSERT !
        _ZLOAD ! _ZMARKER ! _ZPRINT !
        _ZQUIT ! _ZREMOVE ! _ZSAVE !
        _ZTRAP ! _ZUSE ! _ZWRITE

     5.1.1.  KILL
   _KILL ::= K[ILL] [] 
          __KILL ! K[ILL] [] []
   __KILL ::= _KILL <,_KILL>*
   _KILL ::= _ !
               (__) !
               _ V __KILL
   __ ::= _
                    <, >*

     5.1.2.  SET
   _SET ::= S[ET] [] 
                    __SET
   __SET ::= _SET <,_SET>*
   _SET ::=  =  !
          (_) = !
          (_) = !
          _ V __SET
   _ ::=  <, >*
   _ ::=  $PIECE (. . 6.9)

     5.1.3.  NEW
   _NEW ::= N[EW] [] 
                    __NEW !
                    N[EW] [] []
   __NEW ::= _NEW <,_NEW>*
   _NEW ::= _ !

                    (__) !
                                                                 73
                       1.   .


          _ V __NEW
   __ ::= _
                    <,_>*

     5.2.1.  DO
   _DO ::= D[O][] __DO
   __DO ::= _DO <,_DO> *
   _DO ::= _ [] !
          _ V __DO
   _ ::= _ [^_] !
                    ^ 
   _ ::=  [+]
    ::=  ! _ V 
   _ ::= !
                    _ V _
    ::= 

   _DO ::= _[(_.)][]
   _ ::= [][<,>*]
    ::= 

     5.2.2.  ELSE
   _ELSE ::= E[LSE] []

     5.2.3.  FOR
   _FOR ::= F[OR]  _ =
                    _FOR <,_FOR >*
   _FOR ::=  !  :  !
                     :  : 

   _FOR ::= F[OR]  

     5.2.4.  GOTO
   _GOTO ::= G[OTO][] 
                    __GOTO
   __GOTO::=_GOTO <,_GOTO>*
   _GOTO ::= _ [] !
          _ V __GOTO!
          __[(_)][]

   _GOTO ::= _
                    [(_)][]
   _ ::= [][<,>*]
    ::= 

     5.2.5.  HALT
   _HALT ::= H[ALT] [] []

     5.2.6.  HANG
   _HANG ::= H[ANG][] 
                    __HANG
   __HANG ::= _HANG <,_HANG>*
   _HANG ::=  !
          _ V __HANG




     74                             
                       1.   .


     5.2.7.  IF
   _IF ::= I[F]  __IF !
                    I[F] 
   __IF ::= _IF <,_IF>*
   _IF ::=  !
          _ V __IF

     5.2.8.  QUIT
   _QUIT ::= Q[UIT] [] []

     5.2.9.  XECUTE
   _XECUTE ::= X[ECUTE] [] 
                    __XECUTE
   __XECUTE ::= _XECUTE
                    <,_XECUTE>*
   _XECUTE ::=  [] !
          _ V __XECUTE

     5.2.10.  JOB
   _JOB ::= J[OB] []  _JOB
   _JOB ::= _ [_
                    [,_]]
                    [:] [:] !
          _ V _JOB
   _ ::= [_] ^_
   _ ::= []
   _ ::= 
    ::= 

     5.2.11.  ZQUIT
   _ZQUIT ::= ZQ[UIT] [] 

     5.3.1.  CLOSE
   _CLOSE ::= C[LOSE][] 
                    __CLOSE
   __CLOSE ::= _CLOSE <,_CLOSE>*
   _CLOSE ::= _ [:] !
          _ V __CLOSE
   _ ::= 

     5.3.2.  OPEN
   _OPEN ::= O[PEN] [] 
                    __OPEN
   __OPEN ::= _OPEN<,_OPEN>*
   _OPEN ::= _ [:[]
                    [:_ ]] !
          _ V __OPEN
   _ ::= 

     5.3.3.  PRINT
   _PRINT ::= P[RINT] [] [] !
          P[RINT] []  __PRINT
   __PRINT ::= _PRINT
                    <,_PRINT>*
   _PRINT ::= _ !
          _ : _ !

          _ V __PRINT
                                                                 75
                       1.   .



     5.3.4.  READ
   _READ ::= R[EAD] [] 
                    __READ
   __READ :: =_READ <,_READ>*
   _READ ::=  !  !
     _ [:_] !
     _[ _][:_] !
     *_ [:_] !
     _ V __READ

     5.3.5.  USE
   _USE ::= U[SE] []  _USE
   _USE ::= _ [:] !
          _ V _USE

     5.3.6.  VIEW
   _VIEW ::= V[IEW] [] 
                    __VIEW
   __VIEW ::= _VIEW
                    <,_VIEW >*
   _VIEW ::= !  :  !
           : [] :  !
           : [] :  :
          [] :  !
          _ V __VIEW
    := 

     5.3.7.  WRITE
   _WRITE ::= W[RITE] [] 
                    __WRITE!
                    W[RITE] [] []
   __WRITE ::= _WRITE
                    <,_WRITE>*
   _WRITE ::=  !  ! * !
     _ V __WRITE

     5.3.8.  ZLOAD
   _ZLOAD ::= ZL[OAD][] 
     __ZLOAD ! ZL[OAD][] 
   __ZLOAD ::= _ZLOAD
                    <,_ZLOAD>*
   _ZLOAD ::= _ !
          _ V __ZLOAD

     5.3.9.  ZMARKER
   _ZMARKER ::= Z[MARKER] _,_
   _ ::= 
   _ ::= 

     5.3.10.  ZSAVE
   _ZSAVE ::= ZS[AVE][] 
     __ZSAVE ! ZS[AVE][] 
   __ZSAVE ::= <,>*
    ::= _ ! -_



     76                             
                       1.   .


     5.3.11.  ZUSE
   _ZUSE ::= ZU[SE][]  _ZUSE
   _ZUSE ::= _!_ V
                    _ZUSE

     5.3.12.  ZPRINT
   _ZPRINT ::= ZP[RINT][] !
     ZP[RINT][]  __ZPRINT
   __ZPRINT ::= _ZPRINT
                    <,_ZPRINT>*
   _ZPRINT ::= _!_:
          _ ! _ V
                    __ZPRINT

     5.3.13.  ZWRITE
   _ZWRITE :: =ZW[RITE][]  !
          ZW[RITE][]  _ZWRITE
   _ZWRITE ::= _ ! *
          _ V _ZWRITE

   _ZWRITE ::= *

     5.4.1.  ZINSERT
   _ZINSERT ::= ZI[NSERT][] 
                    _ZINSERT
   _ZINSERT ::=  : _!
          _ V _ZINSERT

     5.4.2.  ZREMOVE
   _ZREMOVE ::= ZR[EMOVE][] 
                    __ZREMOVE !
                    ZR[EMOVE][] 
   __ZREMOVE ::= _ZREMOVE
                    <,_ZREMOVE>*
   _ZREMOVE ::= _ !
          _ : _ !
          _ V __ZREMOVE

     5.5.1.  BREAK
   _BREAK ::= B[REAK][]  !
          B[REAK][]  

     5.5.2.  ZGO
   _ZGO ::= ZG[O]  !
          ZG[O][]  [__]
   __ ::= _ ! _

     5.5.3.  ZBREAK
   _ZBREAK ::= ZB[REAK][] 
                    _
   _ ::= ON ! OFF ! OVER ! IN ! OUT

     5.5.4.  ZTRAP
   _ZTRAP ::= ZT[RAP] 
          [___]
   ___ ::= 


                                                                 77
                       1.   .


     5.6.1.  LOCK
   _LOCK ::= L[OCK][] 
          __LOCK ! L[OCK][] 
   __LOCK ::= _LOCK<,_LOCK>*
   _LOCK ::= [:_]!
          (_)[:_]!
          _ V __LOCK
   _ ::=  <, >*

     5.6.2.  ZALLOCATE
   _ZALLOCATE ::= ZA[LLOCATK][] 
                    __ZALLOCATE
   __ZALLOCATE ::= _ZALLOCATE
                    <,_ZALLOCATE>*
   _ZALLOCATE ::= [:_] !

     5.6.3.  ZDEALLOCATE
   _ZDEALLOCATE ::= ZD[EALLOCATE][]  !
                    ZD[EALLOCATE][] 
                    __ZDEALLOCATE
   __ZDEALLOCATE::=_ZDEALLOCATE
                    <,_ZDEALLOCATE>*
   _ZDEALLOCATE::=!_ V
                    __ZDEALLOCATE

      6.  .

 ::= _$ASCII ! _$CHAR !
        _$DATA ! _$EXTRACT ! _$FIND !
        _$GET ! _$HIGH ! _$JUSTIFY !
        _$LENGTH ! _$NEXT ! _$PIECE !
        _$RANDOM ! _$SELECT ! _$TEXT !
        _$VIEW ! _$ZSORT ! _$ORDER !
        _$ZCALL ! _$ZFUNCTION ! _$ZHIGH !
        _$ZLINE ! _$ZMEMORY ! _$ZNEXT !
        _$ZORDER ! _$ZPLUS ! _$ZREAL
        _$ZUCI !

     6.1.  $ASCII
   _$ASCII ::= $A[SCII](_
                    [,_])
   _ ::= 
   _ ::= 

     6.2.  $CHAR
   _$CHAR ::= $C[HAR](_)
   _ ::= <,>*

     6.3.  $DATA
   _$DATA ::= $D[ATA](_)

     6.4.  $EXTRACT
   _$EXTRACT ::= $E[XTRACT](_,
                    [_[,_]])




     78                             
                       1.   .


     6.5.  $FIND
   _$FIND ::= $F[IND](_,,
                    [_])
   _ ::= 
    ::= 

     6.6.  $GET
   _$GET ::= $G[ET](_
          [,__])
   __ ::= 

     6.7.  $HIGH
   _$HIGH ::= $H[IGH] (_)

     6.8.  $JUSTIFY
   _$JUSTIFY ::= $J[USTIFY](,)!
          $J[USIFY](,,)

     6.9.  $LENGTH
   _$LENGTH ::= $L[ENGTH] (_
                    [,])

     6.10.  $NEXT
   _$NEXT ::= $N[EXT] (_)

     6.11.  $PIECE
   _$PIECE ::= $P[IECE] (_,
                    ,
     [__ [,__]])
    ::= 
   __ ::= 
   __ ::= 

     6.12.  $RANDOM
   _$RANDOM ::= $R[ANDOM] ()

     6.13.  $SELECT
   _$SELECT ::= $S[ELECT] (__$SELECT)
   __$SELECT ::= _$SELECT
                    <,_$SELECT>*
   _$SELECT ::= _ : 
     ::= 

     6.14.  $TEXT
   _$TEXT ::= $T[EXT] (_$TEXT)
   _$TEXT ::=  ! +

     6.15.  $VIEW
   _$VIEW ::= $V[IEW] ( [,])

     6.16.  $ZSORT
   _$ZSORT ::= $ZS[ORT] (_)

     6.17.  $ORDER
   _$ORDER ::= $O[RDER] (_)



                                                                 79
                       1.   .


     6.18.  $ZCALL
   _$ZCALL ::= $ZC[ALL](
                    [,_])
   _ ::= [,<>*]

     6.19.  $ZFUNCTION
   _$ZFUNCTION ::= $ZF[UNCTION]
     ([_]:[_])
   _ ::= . !
           <,>*
   _ ::= []<,>*

     6.20.  $ZHIGH
   _$ZHIGH ::= $ZH[IGH] (_$ZHIGH)
   _$ZHIGH ::= _$ZORDOR

     6.21.  $ZLINE
   _$ZLINE ::= $ZL[INE] (, )
    ::= 
    ::= 

     6.22.  $ZMEMORY
   _$ZMEMORY ::= $ZM[EMORY](_$ZMEMORY)
   _$ZMEMORY ::= [+] ! -

     6.23.  $ZNEXT
   _$ZNEXT ::= $ZN[EXT](_$ZNEXT)
   _$ZNEXT ::= _ !
          _ V _$ZNEXT

     6.24.  $ZORDER
   _$ZORDER ::= $ZO[RDER](_$ZORDER)
   _$ZORDER ::= _ !
          _ V _$ZORDER

     6.25.  $ZPLUS
   _$ZPLUS ::= $ZP[LUS] (
                    [,_])
   _ ::= <,>*

     6.26.  $ZREAL
   _$ZREAL ::= $ZR[EAL]()

     6.27.  $ZUCI
   _$ZUCI ::= $ZU[CI](_'[,__])!
          $ZU[CI](_'[,__])


   $$_(_)









     80                             
                                  2.


      2.

                                .


                .
--------------------------------------------------------
! . ! . ! .!! . ! . ! .!
!     !     !     !!     !     !     !
!--------+--------+--------!!--------+--------+--------!
!   000  !   00   !   !!   020  !   16   !  1   !
!   001  !   01   !      !!   021  !   17   !  1   !
!   002  !   02   !      !!   022  !   18   !  2   !
!   003  !   03   !      !!   023  !   19   !  3   !
!   004  !   04   !      !!   024  !   20   !     !
!   005  !   05   !     !!   025  !   21   !     !
!   006  !   06   !      !!   026  !   22   !     !
!   007  !   07   !      !!   027  !   23   !      !
!   010  !   08   !      !!   030  !   24   !      !
!   011  !   09   !      !!   031  !   25   !      !
!   012  !   10   !      !!   032  !   26   !      !
!   013  !   11   !      !!   033  !   27   !  2   !
!   014  !   12   !      !!   034  !   28   !      !
!   015  !   13   !      !!   035  !   29   !      !
!   016  !   14   !     !!   036  !   30   !      !
!   017  !   15   !      !!   037  !   31   !      !
--------------------------------------------------------



                 .
--------------------------------------------------------
!  8  ! 10  !  !!  8  ! 10  !  !
!--------+--------+--------!!--------+--------+--------!
!   040  !    32  !  !!   060  !    48  !   0    !
!   041  !    33  !   !    !!   061  !    49  !   1    !
!   042  !    34  !   "    !!   062  !    50  !   2    !
!   043  !    35  !   #    !!   063  !    51  !   3    !
!   044  !    36  !   $    !!   064  !    52  !   4    !
!   045  !    37  !   %    !!   065  !    53  !   5    !
!   046  !    38  !   &    !!   066  !    54  !   6    !
!   047  !    39  !   '    !!   067  !    55  !   7    !
!   050  !    40  !   (    !!   070  !    56  !   8    !
!   051  !    41  !   )    !!   071  !    57  !   9    !
!   052  !    42  !   *    !!   072  !    58  !   :    !
!   053  !    43  !   +    !!   073  !    59  !   ;    !
!   054  !    44  !   ,    !!   074  !    60  !   <    !
!   055  !    45  !   -    !!   075  !    61  !   =    !
!   056  !    46  !   .    !!   076  !    62  !   >    !
!   057  !    47  !   /    !!   077  !    63  !   ?    !
--------------------------------------------------------







                                                                 81
                                  2.


                .

-----------------------------------------------------------
!     !!    !
!---------------------------!!----------------------------!
! 8 ! 10 !-! 8 ! 10 !-!!  8 ! 10 !-! 8 ! 10 !-!
!! ! !! ! !! ! ! !! ! !
!---+----+----+---+----+----!!----+----+----+---+----+----!
!100!  64! @  !140!  96!   !! 300! 192! @  !340! 224!   !
!101!  65! A  !141!  97!   !! 301! 193! a  !341! 225!   !
!102!  66! B  !142!  98!   !! 302! 194! b  !342! 226!   !
!103!  67! C  !143!  99!   !! 303! 195! c  !343! 227!   !
!104!  68! D  !144! 100!   !! 304! 196! d  !344! 228!   !
!105!  69! E  !145! 101!   !! 305! 197! e  !345! 229!   !
!106!  70! F  !146! 102!   !! 306! 198! f  !346! 230!   !
!107!  71! G  !147! 103!   !! 307! 199! g  !347! 231!   !
!110!  72! H  !150! 104!   !! 310! 200! h  !350! 232!   !
!111!  73! I  !151! 105!   !! 311! 201! i  !351! 233!   !
!112!  74! J  !152! 106!   !! 312! 202! j  !352! 234!   !
!113!  75! K  !153! 107!   !! 313! 203! k  !353! 235!   !
!114!  76! L  !154! 108!   !! 314! 204! l  !354! 236!   !
!115!  77! M  !155! 109!   !! 315! 205! m  !355! 237!   !
!116!  78! N  !156! 110!   !! 316! 206! n  !356! 238!   !
!117!  79! O  !157! 111!   !! 317! 207! o  !357! 239!   !
!120!  80! P  !160! 112!   !! 320! 208! p  !360! 240!   !
!121!  81! Q  !161! 113!   !! 321! 209! q  !361! 241!   !
!122!  82! R  !162! 114!   !! 322! 210! r  !362! 242!   !
!123!  83! S  !163! 115!   !! 323! 211! s  !363! 243!   !
!124!  84! T  !164! 116!   !! 324! 212! t  !364! 244!   !
!125!  85! U  !165! 117!   !! 325! 213! u  !365! 245!   !
!126!  86! V  !166! 118!   !! 326! 214! v  !366! 246!   !
!127!  87! W  !167! 119!   !! 327! 215! w  !367! 247!   !
!130!  88! X  !170! 120!   !! 330! 216! x  !370! 248!   !
!131!  89! Y  !171! 121!   !! 331! 217! y  !371! 249!   !
!132!  90! Z  !172! 122!   !! 332! 218! z  !372! 250!   !
!133!  91! [  !173! 123!   !! 333! 219! [  !373! 251!   !
!134!  92! \  !174! 124!   !! 334! 220! \  !374! 252!   !
!135!  93! ]  !175! 125!   !! 335! 221! ]  !375! 253!   !
!136!  94! ^  !176! 126!   !! 336! 222! ^  !376! 254!   !
!137!  95! _  !177! 127!  !! 337! 223! _  !377! 255!  !
-----------------------------------------------------------

















     82                             
                                .


      .

  -      ,     -
           .
  - ,         -
               .    -
             .
  -          .  
             ,         
            ().
           :
          1)     ;
          2)    .
 -     ,  .     
            $JOB.
 -   ,          ,  
                    
            .       -
           .           
             .
 -  ,   .     
                  ,    
          ,     .
  -  ,   @.    -
              ,    -
                .   -
            ,    .
  - ,          -
              .     .
 -          .    
           , ..          
          ,     .
   -            
          .    ' ' (^)  .    
                .
  - - ,      -
            .
 -  ,            .  
           NAME(S1,S2,...,SM)         M ,
           NAME(S1,S2,...,SM,SM+1,...,SN).
   -   .      -
              .
  -         .  
                 DO  GOTO  -
           , ,     ,    
            .
 -  ,    .        ,
                 .
  - ,          
          .
  - ,       .  
          .    <>, <>,  <>,  <>,  2,  /C,  /O,
          /N, /S, /Q, /R, /U.





                                                                 83
                           .


       .

   1.        .  
.
   2.      . 
.
   3.      . 
 .


















































     84                             



                                  .


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     3
 1.  . . . . . . . . . . . . . . . . . . . . . . . . . .     4
1.1.   .  . . . . . . . . . . . . . . . . . . . . . . .     4
1.2.   . . . . . . . . . . . . . . . . . . . . . .     5
1.3. - .  . . . . . . . . . . . . . . . . . . . . . . . . .     6
1.4.  . . . . . . . . . . . . . . . . . . . . . . . . . . .     6
 2.  . . . . . . . . . . . . . . . . . . . . . . . . . .     7
2.1.  a.  . . . . . . . . . . . . . . . . . . . . . . . . . . . .     7
2.1.1.   .  . . . . . . . . . . . . . . . . . .     7
2.1.2.   .  . . . . . . . . . . . . . . . . .     8
2.2. .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     8
2.2.1.  . . . . . . . . . . . . . . . . . . . . . . . . .     8
2.2.2.  .  . . . . . . . . . . . . . . . . . . . . . . .     8
2.2.3.  . . . . . . . . . . . . . . . . . . . . . . . .     9
2.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .     9
2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     9
2.4.1.  . . . . . . . . . . . . . . . . . . . . . . . .    10
2.4.2.  .  . . . . . . . . . . . . . . . . . . . . . .    10
2.5.   ().  . . . . . . . . . . . . . . . . . .    11
2.5.1.  . . . . . . . . . . . . . . . . . . . . . . . . .    12
2.6.  . . . . . . . . . . . . . . . . . . . . . . . . .    12
 3. .  . . . . . . . . . . . . . . . . . . . . . . . . . . .    16
3.1.  . . . . . . . . . . . . . . . . . . . . . . . . . .    16
3.2.   .  . . . . . . . . . . . . . . . . . . .    16
3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    16
3.3.1.  .  . . . . . . . . . . . . . . . . . . . . .    17
3.3.2.  . . . . . . . . . . . . . . . . . . . . . . . . .    18
3.3.3.  .  . . . . . . . . . . . . . . . . . . . . . . .    18
3.3.4.  . . . . . . . . . . . . . . . . . . . . . . . . .    19
3.4.  .  . . . . . . . . . . . . . . . . . . . . . . . .    20
3.5.   .  . . . . . . . . . . . . . . . . . . .    21
 4. .  . . . . . . . . . . . . . . . . . . . . . . . . . . .    22
4.1.  .  . . . . . . . . . . . . . . . . . . . . . . . . .    22
4.2.  .  . . . . . . . . . . . . . . . . . . . . . . . .    22
4.3.   .;  . . . . . . . . . . . . . . . . .    23
4.3.1.    .  . . . . . . . . . . . . . . .    23
4.3.2.     . . . . . . . . . . . . . . . .    24
4.3.3.     .  . . . . . . . . . . . . . . .    24
 5.  .  . . . . . . . . . . . . . . . . . . . . . . . . .    26
5.1.  . . . . . . . . . . . . . . . . . . . . . . . . .    27
5.1.1.  KILL  . . . . . . . . . . . . . . . . . . . . . . . . . . .    27
5.1.2.  SET . . . . . . . . . . . . . . . . . . . . . . . . . . . .    29
5.1.3.  NEW . . . . . . . . . . . . . . . . . . . . . . . . . . . .    30
5.2.   .  . . . . . . . . . . . . . . . . . . . .    31
5.2.1.  DO  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    31
5.2.2.  ELSE  . . . . . . . . . . . . . . . . . . . . . . . . . . .    32
5.2.3.  FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . .    33
5.2.4.  GOTO  . . . . . . . . . . . . . . . . . . . . . . . . . . .    34
5.2.5.  HALT  . . . . . . . . . . . . . . . . . . . . . . . . . . .    34
5.2.6.  HANG  . . . . . . . . . . . . . . . . . . . . . . . . . . .    34
5.2.7.  IF  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    35
5.2.8.  QUIT  . . . . . . . . . . . . . . . . . . . . . . . . . . .    36
5.2.9.  XECUTE  . . . . . . . . . . . . . . . . . . . . . . . . . .    36

5.2.10.  JOB  . . . . . . . . . . . . . . . . . . . . . . . . . . .    37
                                                                 85



5.2.11.  ZQUIT  . . . . . . . . . . . . . . . . . . . . . . . . . .    38
5.3.  -. . . . . . . . . . . . . . . . . . . . . . . . .    39
5.3.1.  CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . .    39
5.3.2.  OPEN  . . . . . . . . . . . . . . . . . . . . . . . . . . .    39
5.3.3.  PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . .    40
5.3.4.  READ  . . . . . . . . . . . . . . . . . . . . . . . . . . .    41
5.3.5.  USE . . . . . . . . . . . . . . . . . . . . . . . . . . . .    41
5.3.6.  VIEW  . . . . . . . . . . . . . . . . . . . . . . . . . . .    42
5.3.7.  WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . .    44
5.3.8.  ZLOAD . . . . . . . . . . . . . . . . . . . . . . . . . . .    44
5.3.9.  ZMARKER . . . . . . . . . . . . . . . . . . . . . . . . . .    45
5.3.10.  ZSAVE  . . . . . . . . . . . . . . . . . . . . . . . . . .    45
5.3.11.  ZUSE . . . . . . . . . . . . . . . . . . . . . . . . . . .    45
5.3.12.  ZPRINT . . . . . . . . . . . . . . . . . . . . . . . . . .    46
5.3.13.  ZWRITE . . . . . . . . . . . . . . . . . . . . . . . . . .    46
5.4.  . . . . . . . . . . . . . . . . . . . . . . . .    47
5.4.1.  ZINSERT . . . . . . . . . . . . . . . . . . . . . . . . . .    47
5.4.2.  ZREMOVE . . . . . . . . . . . . . . . . . . . . . . . . . .    47
5.5.  .  . . . . . . . . . . . . . . . . . . . . . . . . . .    48
5.5.1.  BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . .    48
5.5.2.  ZGO . . . . . . . . . . . . . . . . . . . . . . . . . . . .    49
5.5.3.  ZBREAK  . . . . . . . . . . . . . . . . . . . . . . . . . .    49
5.5.4.  ZTRAP . . . . . . . . . . . . . . . . . . . . . . . . . . .    50
5.6.     . . . . . . . . . . . . . . . . .    50
5.6.1.  LOCK  . . . . . . . . . . . . . . . . . . . . . . . . . . .    50
5.6.2.  ZALLOCATE . . . . . . . . . . . . . . . . . . . . . . . . .    52
5.6.3.  ZDEALLOCATE . . . . . . . . . . . . . . . . . . . . . . . .    53
 6.  .  . . . . . . . . . . . . . . . . . . . . . . . . .    55
6.1.  $ASCII  . . . . . . . . . . . . . . . . . . . . . . . . . . .    55
6.2.  $CHAR . . . . . . . . . . . . . . . . . . . . . . . . . . . .    55
6.3.  $DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . .    56
6.4.  $EXTRACT  . . . . . . . . . . . . . . . . . . . . . . . . . .    56
6.5.  $FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . .    56
6.6.  $GET  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    57
6.7.  $HIGH . . . . . . . . . . . . . . . . . . . . . . . . . . . .    57
6.8.  $JUSTIFY  . . . . . . . . . . . . . . . . . . . . . . . . . .    57
6.9.  $LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . .    58
6.10.  $NEXT  . . . . . . . . . . . . . . . . . . . . . . . . . . .    58
6.11.  $PIECE . . . . . . . . . . . . . . . . . . . . . . . . . . .    58
6.12.  $RANDOM  . . . . . . . . . . . . . . . . . . . . . . . . . .    59
6.13.  $SELECT  . . . . . . . . . . . . . . . . . . . . . . . . . .    59
6.14.  $TEXT  . . . . . . . . . . . . . . . . . . . . . . . . . . .    59
6.15.  $VIEW  . . . . . . . . . . . . . . . . . . . . . . . . . . .    60
6.16.  $ZSORT . . . . . . . . . . . . . . . . . . . . . . . . . . .    60
6.17.  $ORDER . . . . . . . . . . . . . . . . . . . . . . . . . . .    60
6.18.  $ZCALL . . . . . . . . . . . . . . . . . . . . . . . . . . .    61
6.19.  $ZFUNCTION . . . . . . . . . . . . . . . . . . . . . . . . .    61
6.20.  $ZHIGH . . . . . . . . . . . . . . . . . . . . . . . . . . .    61
6.21.  $ZLINE . . . . . . . . . . . . . . . . . . . . . . . . . . .    62
6.22.  $ZMEMORY . . . . . . . . . . . . . . . . . . . . . . . . . .    62
6.23.  $ZNEXT . . . . . . . . . . . . . . . . . . . . . . . . . . .    62
6.24.  $ZORDER  . . . . . . . . . . . . . . . . . . . . . . . . . .    62
6.25.  $ZPLUS . . . . . . . . . . . . . . . . . . . . . . . . . . .    63
6.26.  $ZREAL . . . . . . . . . . . . . . . . . . . . . . . . . . .    64
6.27.  $ZUCI  . . . . . . . . . . . . . . . . . . . . . . . . . . .    64
6.28.  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    65

 7.   . . . . . . . . . . . . . . . . . . . . . . .    66
     86                             



7.1.    .  . . . . . . . . . . . . . . .    66
7.2.     .  . . . . . . . . . .    68
7.3.     .  . . . . . . . . . . . . . . . .    68
 1.   . . . . . . . . . . . . . . . . . . . .    70
 2.  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    80
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    82
  . . . . . . . . . . . . . . . . . . . . . . .    83
